当前位置:文档之家› 数字信号处理基础实验报告_

数字信号处理基础实验报告_

本科生实验报告实验课程数字信号处理基础学院名称地球物理学院专业名称地球物理学学生姓名学生学号指导教师王山山实验地点5417实验成绩二〇一四年十一月二〇一四年十二月填写说明1、适用于本科生所有的实验报告(印制实验报告册除外);2、专业填写为专业全称,有专业方向的用小括号标明;3、格式要求:①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。

②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm,左右2.54cm,页眉1.5cm,页脚1.75cm)。

字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。

③具体要求:题目(二号黑体居中);摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体);关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体);正文部分采用三级标题;第1章××(小二号黑体居中,段前0.5行)1.1 ×××××小三号黑体×××××(段前、段后0.5行)1.1.1小四号黑体(段前、段后0.5行)参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T 7714-2005)》。

实验一生成离散信号并计算其振幅谱并将信号进行奇偶分解一、实验原理单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,分别得到t=0.002s,0.009s,0.011s采样的结果。

用Excel软件绘图显示计算结果。

并将信号进行奇偶分解,分别得到奇对称信号h(n)-h(-n)与偶对称信号h(n)+h(-n)。

用Excel 软件绘图显示计算结果。

二、实验程序代码(1)离散抽样double a,t;a=2*f*f*log(m);int i;for(i=0;i<N;i++){t=i*dt;h[i]=exp(-a*t*t)*sin(2*3.14*f*t);}(2)奇偶分解float h1[128], h2[128], h3[128], h4[128];int i;for(i=0;i<2*N;i++){h1[i]=h2[i]=h3[i]=h4[i]=0;}for(i=N;i<2*N;i++){h1[i]=h[i-N];}double a;float t=0;a=2*f*f*log(M);for(i=N;i>=0;i--){h2[i]=float(exp(-a*t*t)*sin(2*3.14*f*t));t=t-dt;}for(i=0;i<2*N;i++){h3[i]=h1[i]+h2[i];h4[i]=h1[i]-h2[i];}三、实验结果图(1)离散抽样A信号图B频谱图C频谱图D频谱图(2)奇偶分解A信号图B翻转信号C偶对称信号D奇对称信号四、结果分析对单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,分别得到t=0.002s,0.009s,0.011s采样的结果。

在进行频谱分析时,对信号的采样要满足采样定理,否则会发生频谱混叠现象而对信号不能进行还原。

由图象知t=0.002s采样后,可以还原原始信号。

0.009s,0.011s采样,频谱发生混叠,已不能将原始信号还原。

对单位脉冲响应h(t)=exp(-a*t*t)*sin(2*3.14*f*t)进行离散抽样,然后进行奇偶分解。

因为任何一个信号都可以分解为奇分量与偶分量之和。

原始信号与翻转信号之和为偶对称信号,原始信号减去翻转信号为奇对称信号。

五、心得体会通过本次实验,学会了信号抽样,进行频谱分析。

关键是在信号抽样时要满足抽样定理,否则频谱不能还原原始信号。

学会了如何将信号进行奇偶分解,关键之处是要求得翻转信号。

实验二 计算序列的卷积和相关函数一、 实验原理假设h(n)和x(n)都是有限长序列,长度分别为N 和M ,它们的线性卷积可以表示如下:10()()()()N l m h n x n h m x n m y -==*=-∑假设y(n)和x(n)都是有限长序列,长度分别为N 和M ,它们的线性相关可以表示如下:)()()()()(n y n x n m y m x n R m -*=-=∑∞-∞=二、实验程序代码A 卷积int i,k;for(i=0;i<L;i++){y[i]=0;}for(i=0;i<L;i++){for(k=0;k<N&i-k>=0;k++){y[i]=y[i]+x[i-k]*h[k]; }}B 相关int i,k;for(i=0;i<L;i++){r[i]=0;}for(i=0;i<L;i++){for(k=0;i+k<M;k++){r[i]=r[i]+y2[i+k]*y1[k];}}三、实验结果图A卷积B相关四、结果分析卷积不用管h(n)与x(n)的顺序,二者交换顺序卷积结果是一样的。

但是y1(n)和y2(n)的相关函数 r(n)不可以交换二者的顺序,交换之后相关结果会发生变化,因为Rxy(n)=Rxy(-n),二者图形为偶对称。

五、心得体会通过本次实验,学会了用计算机进行信号的卷积编程运算,其实质就是两重for循环。

以及两个信号之间的相关性进行分析。

知道了卷积与相关之间的本质联系。

实验三 计算离散信号的振幅谱和相位谱并比较FFT 与DFT 的运算速度一、实验原理对于有线长离散数字信号x(n),0<=n<256。

其离散频谱可以由离散傅里叶变换得到。

并进行离散傅里叶逆变换得到原始信号。

傅里叶正逆变换的公式如下。

二、 实验程序代码A 离散傅里叶变换DFTint i,j;if(s==1){for(i=0;i<N;i++){Xr[i]=0;Xi[i]=0;}for(i=0;i<N;i++){for(j=0;j<N;j++){Xr[i]+=float(x[j]*cos(2*3.141592653/N*j*i));Xi[i]+=float(x[j]*sin(2*3.141592653/N*j*i));}}}if(s==-1){for(i=0;i<N;i++){x[i]=0;210210()()1()()N j nk N n N j nk N k X k x n e x n X k e N ππ--=-=⎧=⎪⎪⎨⎪=⎪⎩∑∑01n N ≤≤-01k N ≤≤-}for(i=0;i<N;i++){for(j=0;j<N;j++){x[i]+=float((Xr[j]*cos((2*3.141592653/N)*j*i)+Xi[j]*sin((2*3.141592653/N)*j*i))/N);}}}B计算振幅谱和相位谱int i;for (i=0;i<N;i++){Amp[i]=float(sqrt(Xr[i]*Xr[i]+Xi[i]*Xi[i]));phi[i]=float(atan(Xi[i]/Xr[i]));}三、实验结果图A信号图B振幅谱图C相位谱图四、结果分析在进行离散傅里叶正变换的时候,应用欧拉公式,将频谱实部与虚部分别放入不同的数组Xr[],Xi[]。

而不能利用正变换公式直接计算。

再将信号还原时,因为知道时间域信号是实数,只有实部,在还原时分别将频谱实部与cos相乘,虚部与sin相乘,二者相加直接得到原始信号。

在比较DFT与FFT计算速度时,发现DFT比FFT用时长的多。

五、心得体会通过本次试验,学会了编程计算离散傅里叶正变换与逆变换。

学会了将信号变换到频率域进行分析,得到了原始信号的振幅谱与相位谱。

振幅谱表示权重,相位谱表示初始相位差。

FFT采用基二分解,FFT由于减少了运算,使得运算速度加快。

尤其是数据长度较大时,加快运算速度非常明显。

试验四 FIR滤波器设计和滤波处理一、实验原理本实验中,滤波器滤波功能在频率域实现,若原始信号在频率域高频与低频没有分开,则不可以采用本次是实验方法。

再设计滤波器的时候,关键是要设计h(n)。

再设计滤波器的时候,由于会发生吉普斯现象,所以要对窗函数进行镶边处理,以抑制吉普斯现象。

二、实验程序代码A设计零相位的FIR低通滤波器int i;float d=0.1;for(i=0;i<128;i++){if(i<N1)H[i]=1;if(N1<=i&&i<N2)H[i]=float((N2-i)*d);if(N2<=i&&i<128-N2)H[i]=0;if(128-N2<=i&&i<128-N1)H[i]=float((i-128+N2)*d);if(i>=128-N1)H[i]=1;}B设计零相位的FIR高通滤波器int i;float d=0.1;for(i=0;i<128;i++){if(i<N2)H[i]=0;if(N2<=i&&i<N1)H[i]=float((i-N2)*d);if(N1<=i&&i<128-N1)H[i]=1;if(128-N1<=i&&i<128-N2)H[i]=float((128-N2-i)*d);if(i>=128-N2)H[i]=0;}C计算输出信号的振幅谱并输出信号频谱的实部和虚部 for(k=0;k<128;k++){ Yamp[k]=0;Yr[k]=0;Yi[k]=0;}for(k=0;k<128;k++){Yamp[k]=Xamp[k]*H[k];}for(i=0;i<128;i++){Yr[i]=float(Yamp[i]*cos(phase[i]));Yi[i]=float(Yamp[i]*sin(phase[i]));}三、实验结果图A原始信号B原始信号振幅谱D低通滤波后信号E低通滤波后信号的振幅谱G高通滤波后的信号H高通滤波后的振幅谱四、结果分析原始信号既有高频部分又有低频部分。

将信号进行低通滤波,就是将原始信号的频谱与低通滤波器单位脉冲响应在频率域相乘,并进行傅里叶逆变换还原到时间域,得到低通滤波后的信号,从低通滤波后的信号图谱可以看出,只有低频部分通过,高频部分被压制滤掉。

将信号进行高通滤波,就是将原始信号的频谱与高通滤波器单位脉冲响应在频率域相乘,并进行傅里叶逆变换还原到时间域,得到高通滤波后的信号,从高通滤波后的信号图谱可以看出,只有高频部分通过,低频部分被压制滤掉。

相关主题