Hi Leif, et. al., The original problem was how to determine BFO frequency.
I will state as fact: For an arbitrary modulated waveform, without some minimum proir knowledge of the waveform the BFO frequency is mathematically indeterminate. (As is any other LO in the frequency conversion chain used to create the rf.) The discussion which followed has been over how to 'tune' or reproduce a human voice. I see this as a psycho-acoustic issue which is distinct from radio engineering. If one believes that a ssb signal is 'misstuned' it can only be because of some minimum prior knowledge of the nature of the signal. That prior knowledge is usually an expectation of the sound of a spoken voice using some particular language or of expected distortion products. Exactly as you and Roger have stated below. If you were to attempt to 'tune in' the mateing call of a flat footed yellow billed wood finch you would be at a total loss since you have zero expectation of the sound of such a bird call. (It exists only in my imagination - and I don't know what it sounds like.) There are human languages that do not use consonants and vowels but are 'clicks' and 'clacks'. How would an english or swedish speaker (or voice recognition algorithim) deal with this? I have never heard anyone take issue with the 'proper' tuning of a cw signal. This because the Fourier transform is a delta-function in frequency space and its value is subject only to personal choice. 73, Bill, NL7F On Wed, 27 Sep 2006 12:00:19 +0200, Leif Asbrink wrote: >Hi Bill, Roger, Lasse and all, > >Bill wrote: >> Speaking as an old physicist I note that there is nothing in >> the world of physics to establish the frequency of a biological >> voice. I think you have reached a dead end. Perhaps someone >> else can demonstrate that without transmitting a known audio >> tone (a test tone) the BFO frequency is indeterminate. >I do not think it is as simple as this. I can hear when the tuning >is incorrect by more than 100Hz or so. Not because I know >the frequency of the voice of the speaker but because something >goes wrong with the relation between diffierent overtones to >the fundamental voice frequency. This is the same as what Roger >wrote: > >> I could be all wet on this. I am neither a physicist nor a speech >> physiologist. >> >> I think we have all appreciated that by 'ear' many of us can tell when >> we are off frequency on an SSB signal be even a little bit [I don't >> know how little] as the voice sounds 'rough' or dissonant. >Since I do not operate SSB myself (I never did much because >I always found CW more rewarding) my ear and brain is not well trained >but it is obvious even to me that something is wrong when the mis-tune >is large. > >> But knowing that the voice is made in a resonant cavity, it seems to me >> that there must be a fundamental tone and then overtones of that >> fundamental frequency that are broadcast with each speech sound. I >> suspect that while these relationships differ from person to person, >> that there are some patterns in terms of the relative intensity of each >> overtone, and that these have been characterized by someone. >> >> If this is the case, this relationship could be used to tune in an SSB >> signal accurately, I think. >> >> If you were on frequency the harmonics would line up: >> >> 500-1000-1500-2000 Hz >> >> But if you were off by 50 Hz you would get >> 450 950 1450 1950 and they don't line up. >Yes. Up to this point it seems easy. There was an article in QEX Jul/Aug >2005 "A Blind Automatic Frequency Control Algorithm for Single Sideband" >exploiting this fact to tune SSB automatically. Unfortunately this article >did not offer much help to my problem of finding something that works. > >Lasse, SM0DRV (off list) pointed me to an article in QEX Jan/Feb 1999 >"Tune SSB Automatically" I had not seen this article before, but it >is quite a bit more informative. It actually allows me to pin-point >the problem: > >The human voice is often a repeating waveform which is rich in overtones. >I have an algorithm that finds the times when it happens and Linrad easily >finds such times and computes the fundamental frequency. It is trivial to >compute the complex correlation and as expected it shows a nice maximum >exactly where one expects it from the spectrum. > >The 1999 QEX article writes: "The complex correlation has a peak in its >magnitude at the time interval corresponding to the period of repetition >of the speech waveform put into it. The phase at this magnitude-peak >represents something of the mistuning of the speech. If the speech is >exactly properly tuned the phase will be zero at the peak and the complex >correlation will be purely real and positive. If zero frequency is exactly >halfway between (resultant frequency-domain) peaks, the complex correlation >will be purely real and negative at its magnitude peak." > >Linrad computes the phase of the complex correlation and that should give the >fractional offset of the bfo (in terms of the known voice fundamental). >In real life this is not true at all. The problem is that the radio path (on >HF) shifts the phase differently on different frequencies. Actually the >complex correlation varies at random. On a strong signal with enough carrier >for me to know I tune correctly I can monitor the correlation vs time and see >that it is far too unstable to be useful. Presumably the solution would be >to use just a few voice components - the lowest ones close to the carrier but >this is not a good idea on a heavily processed voice signal for which S/N >would be too low. (At low levels where automatic tuning really would >be useful) > >It seems to me that one should use the phase relation from spectral line to >spectral line in the RF spectrum to get a large number of correlations from >which one could exclude some data and use the remaining ones to form an >average. An obvious way to do it would be like this: > >Assume the fundamental is 125 Hz. >The RF spectrum would contain the following frequencies with >respect to the true carrier frequency: > >375,500,625,750, ...., 2125,2250,2375 (filter 300Hz to 2400 Hz) > >I could set up filters like this: >325 to 550 >450 to 675 >575 to 800 >Many filters:-( >Knowing that the fundamental is 125 Hz I could compute the >complex correlation for the signal within each filter. > >The fundamental problem, the multi-path probagation that causes >a couple of deep notches in the spectrum that drift rapidly in >frequency will make the magnitude of the correlation small >at some frequencies. I expect the correlation to be stable >and correct within the bands of good signal level even though >the correlation phase between different regions of good selective >fading is undetermined. >(for selective fading, look here: >http://www.sm5bsz.com/linuxdsp/selfade/selfade.htm) > >Even though it would be possible, I do not like to try this >idea. I am pretty sure it would work but it is obviously >obscenely inefficient. The phase relation between the different >voice overtones is already present in the fourier transforms >that Linrad already computes (for the baseband waterfall and >spectrum displays.) The phase is in relation to the sine wave >for each frequency bin of the fft, not in relation to the voice >fundamental - but there must be some kind of transformation >that I could do. In SSB the baseband is typically sampled at >6kHz. How do I transform a 256 or 512 point fft with a sampling >frequency of 6kHz to a 64 point fft with a sampling frequency of >say 138.42 Hz? There has to be a simple formula...... > >It seems to me that the phase shift between adjacent strong >bins in such a transform would give the fractional BFO offset:-) > >It does not seem practical to resample the baseband time >function to 64*138.42=8858.9kHz, compute a 512 point fft, >locate at what bins the peaks now repeating every 32th bin are >located. Then downsample in the frequency domain by averaging >over groups of 32 points to get the 16 point fft corresponding >to n*138.42Hz offset from the carrier (with N=2 to 17) > >There has to be a better way! > >73 > >Leif > >############################################################# >This message is sent to you because you are subscribed to > the mailing list <linrad@antennspecialisten.se>. >To unsubscribe, E-mail to: <[EMAIL PROTECTED]> >To switch to the DIGEST mode, E-mail to <[EMAIL PROTECTED]> >To switch to the INDEX mode, E-mail to <[EMAIL PROTECTED]> >Send administrative queries to <[EMAIL PROTECTED]> > Bill Beam NL7F <wbeam at gci dot net> or <NL7F at amsat dot org> -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.1.407 / Virus Database: 268.12.7/454 - Release Date: 9/21/2006 ############################################################# This message is sent to you because you are subscribed to the mailing list <linrad@antennspecialisten.se>. To unsubscribe, E-mail to: <[EMAIL PROTECTED]> To switch to the DIGEST mode, E-mail to <[EMAIL PROTECTED]> To switch to the INDEX mode, E-mail to <[EMAIL PROTECTED]> Send administrative queries to <[EMAIL PROTECTED]>