I have some question about my pwm speech synthesize module.
I write a pwm module use verilog to make speech synthesize,
I test this module on FPGA, I can hear the voice that i want to play.
but there is some high frequence noice in the speech.
can anybody give me some suggestion?
I think there is some problem with my low filter, but I do not know how to change it.
I have some question about my pwm speech synthesize module.
I write a pwm module use verilog to make speech synthesize,
I test this module on FPGA, I can hear the voice that i want to play.
but there is some high frequence noice in the speech.
can anybody give me some suggestion?
I think there is some problem with my low filter, but I do not know how to change it.
Connect it to spectrum analyzer that able to work at low frequencies and check what kind of noise you hear. What sampling rate is used? What analog filter is used on FPGA output?
thanks for your reply!
the sampling rate is 8khz,and the precise is 8bit.
I don't have spectrum analyzer ,just have digital oscillograph.
I measure the output of pwm when I connect the speaker, there is a high pulse.
thanks for your reply!
the sampling rate is 8khz,and the precise is 8bit.
I don't have spectrum analyzer ,just have digital oscillograph.
I measure the output of pwm when I connect the speaker, there is a high pulse.
It is difficult to estimate signal quality with oscilloscope only. Spectrum analyzer is better
Ok. Is any analog filter present between FPGA and speaker?
8 kHz and 8 bits will give a bad voice quality but you can improve things by connecting a steep low-pass filter at your output.
The corner frequency should be lower than half your sampling frequency - you could try a 4-pole 3 kHz filter to start with.
Download FilterPro from TI and start experimenting: **broken link removed**
thanks! I will do experiment according to your suggestion!
I drawing my Waveform in the attachment.
figure 1: pwm waveform
figure 2: waveform when I connect speaker or earphone
I can hear voice clearly when I connect earphone and some high frequence noise in there .
but if I connect speaker ,I can't hear voice clearly and high frequence noise is bigger!
the frequence of pwm is 7.8khz-8khz
wait for yor your reply!
have u bandlimited the signal prior????
as told 8 bits and 8 khz is not a good idea as u have speech BW to be very near to 4KHz and nyquist criterion will be 8 KHz.
may be u can put a LPF prior to synthesizing it.
Your headphones probably have a higher impedance (32 ohms?) than your speaker (8 ohms?) and you cannot connect them directly to your PWM signal.
You need a power amplifier to drive the headphones/speaker.
thanks! I will do experiment according to your suggestion!
I drawing my Waveform in the attachment.
figure 1: pwm waveform
figure 2: waveform when I connect speaker or earphone
I can hear voice clearly when I connect earphone and some high frequence noise in there .
but if I connect speaker ,I can't hear voice clearly and high frequence noise is bigger!
the frequence of pwm is 7.8khz-8khz
wait for yor your reply!
At first, 8 KHz is very small for PWM. 8 kHz 8bit is quite enough for voice (It is standard in communications) but if you operate with 1-bit signal you must oversample the signal. In the easy case PWM needs to work with Fs=8kHz*2^8=2 Mhz.
By the way find some articles about Sigma Delta Modulation. This is what you need. It is enough simple 1st order SDM for your task. Also you need lowpass filter between FPGA and speaker.
And the second, the figure 2 shoes that output capability is insufficient. Is any amplifier present between FPGA and load?
u r increasing the clock which may increase the Fs and hence u may have a better quality.
check the spectrum of the output and u will have ur exact results.
Regards