Maximum frequency of any mobile phone speaker - audio

I want to know , what is the maximum frequency of mobile speaker
look at this image :
I want to create and android application to generate sounds with particular frequency , but before that I want to know what frequencies can be generated by mobile phone speakers
what I really want to know is range of mobile phone speakers frequency , and know whether can I generate infrasound or ultrasound by mobile speakers , or any speaker.
sry for my bad english

I'm guessing at your purpose, but I think the answer might be more interesting in terms of how much energy at each frequency sub-range can a speakerphone produce.
You can play any frequency sound here: https://www.szynalski.com/tone-generator/
Try this on your phone, say around 75Hz, 200Hz and 1800Hz
I think speakerphone conversations sound tinny because the lower frequencies are lost and people crank up the volume to make up for it, and only the higher frequencies are audible at a distance.
On the high end of the range, you'll probably probably hit a hardware or software limit at 44kHz / some other high number.

Related

Recognize specific ringtone

What I want is to be able to get a signal at my raspberry pi at home when I'm not at home so I can e.g. wake up my PC. I always have an old phone lying around that I never really use. So I thought, I can call my phone, a specific mp3 ringtone plays, my raspberry pi listens and recognizes the ringtone and therefore the signal. So I can pretty much chose whatever ringtone I want (but hopefully a not too long one). But the problem is, that it should be recognizable by the raspberry and it should be distinguishable from other sounds. At best I can play random music at home and it will not get signalled until it's the specific ringtone i chose.
So I'm at the very beginning of the project and I have a lot of question. Is this even feasible? How do I listen to the ringtone? Should I use a normal microphone or could I e.g. trigger some gpio pin as long as a specific frequency is played? What kind of ringtone should I use to be as distinguishable as possible? And how to create the software to recognize the sound?
I know this is a lot and I don't expect a step by step solution. But maybe you got some hints to get me in the right direction?
If someone has a similar problem, I found a solution: First I had to choose between a mostly hardware solution and a mostly software solution. The hardware solution is to filter specific frequencies. This seems to be pretty hard using normal band-pass filters if you want narrow bands. There are also components that can do that, now I know of the NE567. But this component only reacts to one frequency and takes quite a lot of energy. To recognize a ringtone, more of these components are needes which means more power consumption. Additionally this solution is pretty unflexible.
So I went for the software solution. Now I have an Arduino Uno that gets an amplified electret microphone signal at an analog input pin. The data is collected and simultaneously analysed with an FFT algorithm. Then I check the dominant frequency if there is any and safe it in an array. Everytime a got a new data point I compare the array with the pattern of my ringtone and calculate a score for the match. If the score is big enough the ringtone is "found" and I can trigger my event.
I'm actually pretty pleased with the solution because it works quite well even with the phone some feet away from the microphone. I thought I need to put the microphone almost directly next to the phone to get good results, but I dont have to. It's still a little sensitive, because the sound volume shouldnt be too high or to low. But with the right volume settings it works with a quite big area when the phone is in the same room. It works even better with some space between microphone and phone, because the phones radiation from the call seems to disturb the circuit quite a lot. There is also the problem, that other noises block the ringtone recognition. I could compensate that with my algorithm, but I almost used up all resources of the Arduino, so I had to keep the algorithm simple. But in my case I dont have a noisy environment, so this is not a problem for me. Another pro is that my event was never triggered from another sound and it seems almost impossible that this could happen by accident.
So it is feasible and I think its actually a quite elegant solution. I also thought about a vibration detection or even directly using the vibration motor's signal but I have no control over the vibration function of that old phone. But I can chose the ringtone for every contact, so I only gave the "magic" ringtone to myself and so the event can only be triggered by myself. I only have to say, that writing the software was kind of hard with the Arduinos limitations. Because I need the data in real time I have limited time for the calculation. I had to limit the incomping data and therefore I can only listen to frequencies up to 10kHz. But the ringtone recognition is still possible and I think it was worth the effort. :)

Who manufacturers BLE devices with low distance or low tx power available or configurable

What BLE beacon models can be configuraged to only be detectable at around 5-7 meters?
I've only used one bluetooth manufacturer and getting the distance (using the signal strength (RSSI)) the distance was not consistently accurate enough. It seems the most accurate way to get distances is by setting the power level lower and only check whether you are in range or not.
I don't know how the power levels translate to distances, so just looking at the txPower on manufacturer sites does not help much. Preferably ones that are configurable and can also be configured to higher or even lower power levels.
You could play with power level (Kontakt IO beacons supports it) but what you want to achieve is really difficult.
To be short, here is great, detailed, explanation of everything what I would wrote.
Hope it helps...

How to use Bluetooth Low Energy badge for localization?

I know, this question has been asked a lot of times. Until yesterday i thought that the answer was "yes, it is possible but you can not obtain an accurate result of your position". My idea is to take a BLE badge in my hand and with other 4 devices, positioned on the ceiling, obtain my current position using the trilateration. After weeks of resarch, i concluded that this method could not be as accurate as i'd like it to be, so i went over.
Now, what about this video? Youtube by Loopd.
They use bluetooth badges, but how they obtain these results?
Thanks to everyone
The results of Bluetooth LE indoor location can be quite accurate, but it requires some processing of the raw signals rather than simple triangulation. Essentially you weight different beacons differently in your position calculation based on how far away they are and filter to smooth the result.
There is a working example as open source at http://vor.space/

How can I detect the sound in a raw sound file

I am developing a software which can auto record and extract every words in my voice. I used portaudio library to solve it. But I am stuck on detecting the sound: I set the silence's value is zero so if there is a sample which is zero, it must be a start or end point of a sound. But when I ran it, the program created many words. I think because the value I read by portaudio is raw data, so it can't be processed like that. Am I right? How can I fix it? By the way, I am coding in C++ :D
To detect the presence of a signal in a PCM stream you be able to detect it. As dprogramz put said, the noise floor of your soundcard is probably not perfect and so there will be some noise signal recorded (even with no mic connected).
The solution is to use a VOX or VAD algorithm to detect the presence of your voice. VOX can be tricky, since in most consumer grade electronics the noise floor is just low enough to be "silence" to the human ear, relative to the signal. This means that the difference on amplitude between the noise floor and signal may be slight. If your sound card has AGC turned on this can make it even more difficult, since the noise floor may move. Having said that, VOX can be implemented successfully on consumer grade equipment. It just takes more effort to establish the threshold. When done best the threshold is calculated periodically while the stream is active.
If I were doing this I'd implement a VAD algorithm. Since your objective is to detect your voice this should provide a reliable result regardless of the equipment you use.
I don't think it's because it is a RAW value. RAW sound files are a bitstream of frequency and volume information.
However, the value will rarely (if ever) be zero. You have to take into account there is a small amount of electrical noise that is made by the mic. Figure out the "idle" dB of your mic (just test the level when you aren't talking into it). You Then need to set a silence threshold (below a certain dB level for a certain number of samples) to detect the beginning/end. Attempting to detect a zero value is gonna be near impossible.

what are the technical parameters to generate nokia sms sound?

Does anybody know the specs (or where to find them) for the traditional generic incoming SMS sound on Nokia phones (beep beep ..... beep beep .... )? (frequency, duration, pauses etc). seems, mobile phones of other makers have other sound palettes.
Capture/replay is too much overhead, when knowledge of some technical parameters would be enough.
making noise on a specific platform (java, .net) is not the problem here.
The note played is a Bb5, so that's 932.33Hz. Assuming BPM = 210, the note on and offs are at seconds
0.000 On
0.169 Off
0.285 On
0.454 Off
1.142 On
1.310 Off
1.428 On
1.596 Off
(Source: https://rs32tg.rapidshare.com/#!download|32dt|8016175|Message.mid|1|R~0)
I found an MP3 here: http://gallery.mobile9.com/f/62550/. The timbre of the sound is packed with overtones, but looking at the spectrum, it appears that even multiples are more prominent than odd multiples. Here's a linear spectrum taken from Audacity:
http://i55.tinypic.com/33mscg6.png

Resources