> A client for unknown reasons wants to emit speech in teh frequency range above 20kHz. I was wondering what is the best way around this to do a frequency shift. Then presumably I would need a sound card on a PC with high sampling rate and ultrasonic amplifier and loudspeaker. (this can be bought).
>
> So I sample at say 44.1KHz as usual a section of speech and store to wav file.
> Then I up the sample rate to say 88.2kHz.
>
> To frequency shift would I just (in MATLAB) band limit the signal (say 5kHz) and then multiply by a sine-wave of frequency 25kHz and then bandpass filter 20kHz to 25kHz. Then clock the speech out at 88.2kHz. Or is there a much easier way. Would this work or is there a simpler method.
>
> Thanks
If you want to shift all frequency components of the speech
signal by a constant value (e.g. 20 kHz), you're attempting
to create a SSB radio signal at the selected carrier frequency
and on upper sideband.
There is plenty of information of such an operation available,
if you know how to find it.
A good start would be googling for:
- SSB signal generation, or
- Image rejection mixing
The way you described is in use in practice and called the
filter method of SSB generation.
--
-TV
Reply by ●August 1, 20192019-08-01
A client for unknown reasons wants to emit speech in teh frequency range above 20kHz. I was wondering what is the best way around this to do a frequency shift. Then presumably I would need a sound card on a PC with high sampling rate and ultrasonic amplifier and loudspeaker. (this can be bought).
So I sample at say 44.1KHz as usual a section of speech and store to wav file.
Then I up the sample rate to say 88.2kHz.
To frequency shift would I just (in MATLAB) band limit the signal (say 5kHz) and then multiply by a sine-wave of frequency 25kHz and then bandpass filter 20kHz to 25kHz. Then clock the speech out at 88.2kHz. Or is there a much easier way. Would this work or is there a simpler method.
Thanks