数字信号处理-使用Python分析与实现 课件 第10章 常用的特殊滤波器和实例分析_第1页
数字信号处理-使用Python分析与实现 课件 第10章 常用的特殊滤波器和实例分析_第2页
数字信号处理-使用Python分析与实现 课件 第10章 常用的特殊滤波器和实例分析_第3页
数字信号处理-使用Python分析与实现 课件 第10章 常用的特殊滤波器和实例分析_第4页
数字信号处理-使用Python分析与实现 课件 第10章 常用的特殊滤波器和实例分析_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第10章常用的特殊滤波器和实例分析李蓉艳同济大学电子与信息工程学院2024年12月第10章常用的特殊滤波器和实例分析2滤波器应用分析特殊滤波器波形发生器数字陷波器数字谐振器波形发生器正弦波发生器双音多频信号应用实例相关函数的应用生成双音多频信号零极点位置系数量化的字长周期性方波发生器任意周期序列发生器语音信号处理举例本章重点-应用分析3数字陷波器和数字谐振器的原理数字信号发生器的原理时频分析技术的了解410.1一些特殊的滤波器1.数字陷波器理想情况下消除来自一个频率点的干扰,幅度响应为

陷波器的带宽-3dB带宽

5

6【例10.1.1】设计一个二阶数字陷波器,数字系统采样频率为8000Hz。陷波器的中心频率为500Hz,3dB处的带宽为40Hz。

7

82.基于Python的陷波器设计scipy.signal提供了一个产生二阶陷波器的函数iirnotch(w0,Q,fs=2.0)。w0陷波器的中心频率,是需要从信号中移除的频率。如果参数中缺省fs时,w0是归一化的频率(0<w0<1),w0=1表示为数字系统采样频率的一半。Q=w0/3dB带宽,为一浮点数。fs为采样频率,缺省为2。函数返回陷波器系统函数的分母和分子多项式系数a和b。9【例10.1.2】已知采样频率为1200Hz,设计一个陷波器滤除400Hz的频率成分,衰减为3dB时的带宽为10Hz。解编写陷波器设计程序,运行结果如图10.1.3所示。…fs=1200.0#抽样频率(Hz)f0=400.0#陷波器中心频率(Hz)Q=40.0#Q=f0/3dB带宽b,a=signal.iirnotch(f0,Q,fs)…102数字谐振器

幅频特性为

11系统函数为

幅度响应

2数字谐振器122数字谐振器(3)谐振器的特点。

13【例10.1.3】设信号由800Hz、1000Hz和1200Hz的信号相加组成,希望设计一个数字滤波器将1000Hz的信号提取出来,将其他频率信号加以滤除,采样频率为4000Hz。

14

15基于Python的谐振器设计scipy.signal中的函数iirpeak(w0,Q,fs=2.0)设计一个二阶谐振器。w0是谐振器的中心频率,如果缺省参数fs时,0<w0<1,w0=1对应数字系统的折叠频率。Q=w0/3dB带宽,Q为一浮点数。fs为采样频率,缺省为2.函数返回谐振器系统函数的分母和分子多项式系数a和b。16【例10.1.4】已知采样频率为1000Hz,设计一个谐振器,放大频率为300Hz的信号,衰减为3dB时的带宽为10Hz。解…fs=1000.0#抽样频率(Hz)f0=300.0#谐振频率(Hz)Q=30.0#Q=f0/3dB带宽b,a=signal.iirpeak(f0,Q,fs)…1710.2波形发生器

1正弦波及余弦波发生器

系统函数为

18

10.2波形发生器192双音多频信号低频/高频(Hz)1209133614771633697123A770456B852789C941*0#D“5”就产生1336Hz和770Hz的两个正弦信号的叠加信号高频和低频的正弦信号组合

20在接收端,将接收信号通过一个低通滤波器和一个高通滤波器区别低频信号频率和高频信号频率,从而判断出对应的数字。2双音多频信号213周期性方波发生器

系统函数为

22

3周期性方波发生器图10.2.4周期性方波示意图(周期为8,占空比为1:1)图10.2.5产生周期性方波的系统结构234任意周期序列的发生器

2410.3应用实例1相关函数的应用(1)在信号测量中:信号的自相关可以帮助验证是否有周期振荡信号存在,并确定信号的周期。(2)时延估计:两个相似信号之间的互相关会产生振幅最大值。在雷达测量中可以确定距离或飞行时间,或者在同步信号,对齐信号具有应用价值。(3)信号分析:使用互相关来分析地震信号、雷达、声呐和其他信号。将输入信号与已知标准信号对比可以帮助检测低于噪声阈值的事件、提取信息或识别特性事件。25【例10.3.1】产生随机信号模拟机器运行声音,加入正弦信号模拟机器状态异常时的周期振荡信号,使用自相关函数观察噪声的波形,得到振荡信号的周期。

262生成双音多频信号importnumpyasnpfromscipyimportsignalimportmatplotlib.pyplotaspltkeys='*#0123456789ABCD'fs=8000T=1/fs#DTMF频率表low_freqs=[697,770,852,941]#低频组high_freqs=[1209,1336,1477,1633]#高频组buttons={'1':(0,0),'2':(0,1),'3':(0,2),'A':(0,3),'4':(1,0),'5':(1,1),'6':(1,2),'B':(1,3),'7':(2,0),'8':(2,1),'9':(2,2),'C':(2,3),'*':(3,0),'0':(3,1),'#':(3,2),'D':(3,3)}defdtmf(phonenumber,duration=0.5,delay=0.1,Fs=8000):t=np.linspace(0,duration,int(duration*Fs),endpoint=False)silence=np.zeros(int(delay*Fs))sounds=[]forkeyinphonenumber:ifkey.upper()inkeys:l,h=buttons[key]fl,fh=low_freqs[l],high_freqs[h]print(key,fl,fh)sounds.append(np.sin(2*np.pi*fl*t)+np.sin(2*np.pi*fh*t))sounds.append(silence)returnnp.concatenate(sounds[:-1])s=dtmf('138')N=len(s)t=np.arange(N)/fsw,H=signal.freqz(s)plt.rc("font",family='MicrosoftYaHei')plt.plot(t,s)plt.title('双音多频信号')plt.xlabel('时间(s)')plt.figure()plt.stem(w/(2*np.pi)*fs,abs(H),basefmt='k')plt.xlabel('频率(Hz)')plt.title('双音多频信号的幅度谱')f,t,Sxx=signal.spectrogram(s,fs)plt.figure()

plt.pcolormesh(t,f,Sxx,shading='gouraud')plt.ylabel('频率

(Hz)')plt.ylim([0,2000])plt.xlabel('时间[秒]')plt.title('双音多频信号的时频分布')plt.show()27时频分析常常用来处理非平稳信号,例如线性调频信号283语音信号处理举例语音信号处理简称语音处理,是用以研究语音发声过程、语音信号统计特性、语音自动识别、机器合成及语音感知等各种技术的总称。现代语音信号处理技术都以数字计算机为基础,并借助微处理器、信号处理器或通用计算机加以实现,因此也称为数字语音信号处理。语音信号处理与智能技术的发展结合紧密,是智能信息技术、人机交互等应用的重要技术。梅尔倒谱系数(MFCC)——应用最广泛的语音信号特征提取方法。它根据人耳区分频率的特点,使用Mel尺度将频带划分为子带,然后利用离散余弦变换(DCT)提取倒谱系数。计算梅尔倒谱系统有六个步骤29在程序中加载语音信号,对幅度进行归一化处理。语音信号处理实例importnumpyasnpfromscipy.ioimportwavfile

fromscipy.signalimportget_window

importmatplotlib.pyplotasplt

#读取音频文件audio1="speech_sig.wav"sample_rate,audio2=wavfile.read(audio1)

#归一化duration=len(audio2)/sample_rateprint(f"Samplerate:{sample_rate}Hz")print(f"Audioduration:{duration}s")t=np.linspace(0,duration,len(audio2))plt.rc("font",family='MicrosoftYaHei')plt.figure(1),plt.plot(t,audio2)plt.xlabel("时间(s)"),plt.ylabel("幅度")plt.title("原始语音信号")Audio_norm=audio2/np.max(np.abs(audio2))plt.figure(2),plt.plot(t,Audio_norm),plt.xlabel("时间(s)"),plt.ylabel("幅度")plt.title("归一化语音信号")30预处理包括预加重、端点检测、分帧和加窗。1.预加重补偿由于口腔辐射引起的高频分量的损失,增加语音的高频分辨率。

defpre_emphasis(signal,coeff=0.97):returnnp.append(signal[0],signal[1:]-coeff*signal[:-1])Audio_em=pre_emphasis(Audio_norm)plt.figure(3)plt.plot(t,Audio_em),plt.xlabel("时间(s)"),plt.ylabel("幅度")plt.title("预加重语音信号")312.分帧由于音频信号是一个非平稳过程,FFT变换会产生失真,把音频信号进行分帧。假设在短时间里是一个平稳信号,就可以用处理稳态信号的方法进行处理。为了使帧与帧之间能够平稳过渡,在相邻两帧之间有重叠。defframe_audio(normalizedAudio,win_len=2048,hop_len=800):frame_num=int(len(normalizedAudio)-win_len+1)//hop_lenframes=np.zeros((frame_num,win_len))#print(win_len)foriinrange(frame_num):frames[i]=normalizedAudio[i*hop_len:i*hop_len+win_len]returnframes

hop_len=800win_len=2048audio_framed=frame_audio(Audio_norm,win_len=win_len,hop_len=hop_len)print(f"分帧尺寸:{audio_framed.shape}")323.加窗为了减少频谱的泄漏,对每一帧语音加窗,例如使用汉宁窗。window=get_window("hann",win_len,fftbins=True)audio_win=audio_framed*windowplt.figure(5),plt.subplot(3,1,1),plt.plot(window)plt.title("汉宁窗"),plt.xlabel("采样点数"),plt.ylabel("幅度"),plt.grid(True)plt.subplot(3,1,2),plt.plot(audio_framed[2])plt.xlabel("采样点数"),plt.ylabel("幅度"),

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论