重庆大学光电学院数字信号处理实验
数字信号处理实验报告
实验一 信号、系统及系统响应一、实验目的1、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对时域采样定理的理解。
2、熟悉离散信号和系统的时域特性。
3、熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。
4、掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号、系统及其系统响应进行频域分析。
二、 实验原理1.理想采样序列:对信号x a (t)=A e −αt sin(Ω0t )u(t)进行理想采样,可以得到一个理想的采样信号序列x a (t)=A e −αt sin(Ω0nT ),0≤n ≤50,其中A 为幅度因子,α是衰减因子,Ω0是频率,T 是采样周期。
2.对一个连续时间信号x a (t)进行理想采样可以表示为该信号与一个周期冲激脉冲的乘积,即x ̂a (t)= x a (t)M(t),其中x ̂a (t)是连续信号x a (t)的理想采样;M(t)是周期冲激M(t)=∑δ+∞−∞(t-nT)=1T ∑e jm Ωs t +∞−∞,其中T 为采样周期,Ωs =2π/T 是采样角频率。
信号理想采样的傅里叶变换为X ̂a (j Ω)=1T ∑X a +∞−∞[j(Ω−k Ωs )],由此式可知:信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期为Ωs =2π/T 。
根据时域采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混叠现象。
三、简明步骤产生理想采样信号序列x a (n),使A=444.128,α=50√2π,Ω0=50√2π。
(1) 首先选用采样频率为1000HZ ,T=1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并做记录;(2) 改变采样频率为300HZ ,T=1/300,观察所得到的频谱特性曲线的变化,并做记录;(3) 进一步减小采样频率为200HZ ,T=1/200,观察频谱混淆现象是否明显存在,说明原因,并记录这时候的幅频特性曲线。
数字信号处理实验
数字信号处理实验实验一信号、系统及系统响应1、实验目的认真复习采样理论、离散信号与系统、线性卷积、序列的z 变换及性质等有关内容;掌握离散时间序列的产生与基本运算,理解离散时间系统的时域特性与差分方程的求解方法,掌握离散信号的绘图方法;熟悉序列的z 变换及性质,理解理想采样前后信号频谱的变化。
2、实验内容a. 产生长度为500 的在[0,1]之间均匀分布的随机序列,产生长度为500 的均值为0 单位方差的高斯分布序列。
b. 线性时不变系统单位脉冲响应为h(n)=(0.9)nu(n),当系统输入为x(n)=R10(n)时,求系统的零状态响应,并绘制波形图。
c. 描述系统的差分方程为:y(n)-y(n-1)+0.9y(n-2)=x(n),其中x(n)为激励,y(n)为响应。
计算并绘制n=20,30,40,50,60,70,80,90,100 时的系统单位脉冲响应h(n);计算并绘制n=20,30,40,50,60,70,80,90,100 时的系统单位阶跃响应s(n);由h(n)表征的这个系统是稳定系统吗?d. 序列x(n)=(0.8)nu(n),求DTFT[x(n)],并画出它幅度、相位,实部、虚部的波形图。
观察它是否具有周期性?e. 线性时不变系统的差分方程为y(n)=0.7y(n-1)+x(n),求系统的频率响应H(ejω),如果系统输入为x(n)=cos(0.05πn)u(n),求系统的稳态响应并绘图。
f. 设连续时间信号x(t)=e-1000|t|,计算并绘制它的傅立叶变换;如果用采样频率为每秒5000 样本对x(t)进行采样得到x1(n),计算并绘制X1(ejω),用x1(n)重建连续信号x(t),并对结果进行讨论;如果用采样频率为每秒1000 样本对x(t)进行采样得到x2(n),计算并绘制X2(ejω),用x2(n)重建连续信号x(t),并对结果进行讨论。
加深对采样定理的理解。
g. 设X1(z)=z+2+3z-1,X2(z)=2z2+4z+3+5z-1,用卷积方法计算X1(z)X2(z)。
重庆大学数字信号处理大作业报告
数字信号处理课外实验设计——音频采样和频谱混叠课程名称:数字信号处理院系:通信工程学院专业:通信01班年级: 2013级*名:***学号: ********指导教师:**实验时间: 2015.11.26重庆大学一、实验目的:1、熟悉MATLAB语言的基本用法;2、掌握MATLAB语言中音频数据与信息的读取与播放方法;3、掌握在MATLAB中设计滤波器的方法;4、掌握MATLAB语言中信号频谱的绘制方法。
5、对采样定理进行初步验证,体会频谱混叠现象,并大致确定音频信号的最低采样频率。
二、实验原理:现实当中遇到的绝大多数信号都是连续的,即所谓的连续信号。
如语音、图像、温度压力电流等都是模拟信号。
要利用数字信号处理技术实现对这些信号的处理,需要借助对这些信号的处理,需要借助A/D转换,先将模拟信号转变为数字信号后才能利用数字技术对其进行加工处理。
因此,采样是从连续到离散的桥梁。
如果选择的采样频率太低,及fs<2fm的采样频率太低,或者说是信号的最高频率fm 超过fs/2,则采样后的频谱按照采样率周期延拓时,各周期延拓分量产生频谱的交叠,这种现象叫频谱混叠。
三、实验内容:本实验通过MATLAB软件,完成以下四项任务1、用fs=44100HZ采集一段音乐。
2、改变采样频率,用fs=5512HZ采集一段音乐,体会混叠现象。
3、录制一段自己的声音,试验当fs=?时,发生混叠。
4、(选作)在噪声环境中录制一段自己的声音,试采用一种方法将噪声尽可能地消除。
四、实验步骤:仿真程序DSP_homework1.m:clc;clear;close all;%% 44100Hz和5512Hz采集音频文件[FileName,PathName] = uigetfile('*.wav','选择待处理音频文件');%获取处理音频文件位置path1=fullfile(PathName,FileName);[x,Fs1]=audioread(path1);%默认采样频率Fs为44100Hzx1=x(:,1);%1声道数据x2=x(:,2);%2声道数据%y1=x1(1:800000);%y1=x1(1:8:end);Fs2=5512;y1=resample(x1,5512,44100); %信号降采样处理,采样从44100Hz降到5512Hzy2=resample(x2,5512,44100);y=[y1 y2];t1=0:1/Fs1:(length(x1)-1)/Fs1;%取时域横轴tt2=0:1/Fs2:(length(y1)-1)/Fs2;N =5096; %fft点数,以频谱分辨率为10Hz,信号最高频率40kHz求出记录最小点数f=10^3;%取频率轴单位为KHzX1=fft(x1,N);X1=10*log(abs(fftshift(X1)));%用对数表示44100Hz音频信号的频谱Y1=fft(y1,N);Y1=10*log(abs(fftshift(Y1)));%用对数表示5512Hz音频信号的频谱PathName1=uigetdir(strcat(matlabroot,'\work' ),'加噪后音频文件另存为');FileName1='music_5512.wav'path2=fullfile(PathName1,FileName1);audiowrite(path2,y,Fs2);%生成5512Hz采样的wav格式音频文件,试听音乐效果%% 绘图figure(1);%44100Hz采集音频信号时域图、频谱图subplot(2,1,1);plot(t1,x1,'r');axis([0 95 -1 1]);%设置坐标轴范围set(gca,'XTick',0:5:95),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-0.8:0.2:0.8),grid on;%设置y坐标轴刻度,绘制方格线title('44100Hz采样音乐信号波形');xlabel('时间轴,单位s');subplot(2,1,2);plot((-N/2+1:N/2)*Fs1/N/f,X1,'b');axis([-25 25 -70 50]);set(gca,'XTick',-25:5:25),grid on;set(gca,'YTick',-70:20:50),grid on;title('44100Hz采样音乐信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');figure(2)%5512Hz采集音频信号时域图、频谱图subplot(2,1,1);plot(t2,y1,'r');axis([0 95 -1 1]);%设置坐标轴范围set(gca,'XTick',0:5:95),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-0.8:0.2:0.8),grid on;%设置y坐标轴刻度,绘制方格线title('5512Hz采样音乐信号波形');xlabel('时间轴,单位s');subplot(2,1,2);plot((-N/2+1:N/2)*Fs2/N/f,Y1,'b');axis([-3 3 -70 50]);set(gca,'XTick',-3:1:3),grid on;set(gca,'YTick',-70:20:50),grid on;title('5512Hz采样音乐信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');仿真程序DSP_homework2.m:clc;clear;close all;%% 录音测试多少采样频率时发生混叠Fs1=2205;%录音采样频率nBits=16;%音频位数nChannels=1;%声道数recording_time=1.5;%录音时间长度recObj = audiorecorder(Fs1,nBits,nChannels)disp('Start speaking.')recordblocking(recObj, recording_time);disp('End of Recording.');play(recObj);% 回放录音数据myRecording = getaudiodata(recObj);% 获取录音数据t1=0:1/Fs1:(length(myRecording)-1)/Fs1;%取时域横轴tN1=5096; %fft点数f=10^3;%取频率轴单位为KHzfft_myRecording=fft(myRecording,N1);fft_myRecording=20*log(abs(fftshift(fft_myRecording)));PathName1=uigetdir(strcat(matlabroot,'\work' ),'录音音频文件另存为'); FileName1='record_2205.wav'path=fullfile(PathName1,FileName1);audiowrite(path,myRecording,Fs1);%生成原始信号叠加噪声后的wav格式音频文件,试听叠加噪声效果%% 绘制录音数据波形figure(1)subplot(211)plot(t1,myRecording,'r');axis([0 1.5 -1 1]);%设置坐标轴范围set(gca,'XTick',0:0.1:1.5),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-0.8:0.2:0.8),grid on;%设置y坐标轴刻度,绘制方格线title('2205Hz录制人声信号波形');xlabel('时间轴,单位s');subplot(212)plot((-N1/2+1:N1/2)*Fs1/N1/f,fft_myRecording,'b');axis([-1.5 1.5 -120 80]);set(gca,'XTick',-1.5:0.5:1.5),grid on;set(gca,'YTick',-120:20:80),grid on;title('2202Hz录制人声信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');仿真程序DSP_homework3.m:clc;clear;close all;%% 录入噪音[FileName,PathName] = uigetfile('*.wav','选择待处理录音文件');%获取处理音频文件位置path=fullfile(PathName,FileName);[audio,Fs]=audioread(path);%默认采样频率Fs为44100Hzt=0:1/Fs:(length(audio)-1)/Fs;%取时域横轴tN =5096; %fft点数f=10^3;%取频率轴单位为KHzfft_audio=fft(audio,N);fft_audio=20*log(abs(fftshift(fft_audio)));%% 绘制噪音数据波形figure(1)subplot(211)plot(t,audio,'r');axis([0 2 -1.1 1.1]);%设置坐标轴范围set(gca,'XTick',0:0.2:2),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-1.1:0.2:1.1),grid on;%设置y坐标轴刻度,绘制方格线title('噪声背景下声音信号波形');xlabel('时间轴,单位s');subplot(212)plot((-N/2+1:N/2)*Fs/N/f,fft_audio,'b');axis([-25 25 -220 -60]);set(gca,'XTick',-25:5:25),grid on;set(gca,'YTick',-220:20:-60),grid on;title('噪声背景下声音信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');%% 进行加噪处理Ym=max(max(max(audio)),max(abs(min(audio))));%找出极值audio=audio/Ym;%% 设计低通滤波器wn=0.1;%滤波器归一化截止频率为0.15n=513;%滤波器阶数为512w=hamming(n)hh=fir1(n-1,wn,'low',w);figure(2);freqz(hh);%绘制滤波器的频率响应图%% 对加噪音频信号进行滤波处理filter_audio=filter(hh,1,audio);%使含有噪声的信号通过一个已设计的低通滤波器hhPathName2=uigetdir(strcat(matlabroot,'\work' ),'去噪后音频文件另存为'); FileName2='record_recover.wav'path2=fullfile(PathName2,FileName2);audiowrite(path2,filter_audio,Fs);%生成原始信号叠加噪声后又经滤波后的wav格式音频文件,试听滤波后效果fft_filter_audio=fft(filter_audio,N);fft_filter_audio=20*log(abs(fftshift(fft_filter_audio)));%用对数表示噪声信号的频谱%%figure(3)subplot(211)plot(t,filter_audio,'r');axis([0 2 -1.1 1.1]);%设置坐标轴范围set(gca,'XTick',0:0.2:2),grid on;%设置x坐标轴刻度,绘制方格线set(gca,'YTick',-1.1:0.2:1.1),grid on;%设置y坐标轴刻度,绘制方格线title('滤噪后声音信号波形');xlabel('时间轴,单位s');subplot(212)plot((-N/2+1:N/2)*Fs/N/f,fft_filter_audio,'b');axis([-5 5 -220 -60]);set(gca,'XTick',-5:1:5),grid on;set(gca,'YTick',-220:20:-60),grid on;title('滤噪后声音信号频谱图');xlabel('频率轴,单位kHz');ylabel('单位:dB');五、结果与分析:1.实验结果:Figure 1Figure2Figure3Figure4 Figure5Figure6 Figure7高斯白噪声背景下Figure8Figure9Figure10背景噪声下Figure11Figure12 Figure132.实验分析声音信号的采集与分析处理在工程应用中是经常需要解决的题,如何实时采集声音信号并对其分析处理,找出声音信号的特征在科学研究中是一项非常有意义的工作。
数字信号处理实验报告_五个实验
实验一 信号、系统及系统响应一、 实验目的1、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解;2、熟悉时域离散系统的时域特性;3、利用卷积方法观察分析系统的时域特性;4、掌握序列傅立叶变换的计算机实现方法,利用序列的傅立叶变换对连续信号、离散信号及系统响应进行频域分析。
二、 实验原理及方法采样是连续信号数字处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生变化以及信号信息不丢失的条件,而且可以加深对傅立叶变换、Z 变换和序列傅立叶变换之间关系式的理解。
对一个连续信号)(t x a 进行理想采样的过程可用下式表示:)()()(^t p t t xx aa=其中)(^t x a 为)(t x a 的理想采样,p(t)为周期脉冲,即∑∞-∞=-=m nT t t p )()(δ)(^t x a的傅立叶变换为)]([1)(^s m a m j X T j a XΩ-Ω=Ω∑∞-∞=上式表明^)(Ωj Xa为)(Ωj Xa的周期延拓。
其延拓周期为采样角频率(T /2π=Ω)。
只有满足采样定理时,才不会发生频率混叠失真。
在实验时可以用序列的傅立叶变换来计算^)(Ωj X a 。
公式如下:Tw jw ae X j X Ω==Ω|)()(^离散信号和系统在时域均可用序列来表示。
为了在实验中观察分析各种序列的频域特性,通常对)(jw e X 在[0,2π]上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n),有:n jw N n jw k ke m x eX--=∑=)()(1其中,k Mk πω2=,k=0,1,……M-1 时域离散线性非移变系统的输入/输出关系为 ∑∞-∞=-==m m n h m x n h n x n y )()()(*)()(上述卷积运算也可在频域实现)()()(ωωωj j j e H e X eY =三、 实验程序s=yesinput(Please Select The Step Of Experiment:\n 一.(1时域采样序列分析 s=str2num(s); close all;Xb=impseq(0,0,1); Ha=stepseq(1,1,10);Hb=impseq(0,0,3)+2.5*impseq(1,0,3)+2.2*impseq(2,0,3)+impseq(3,0,3); i=0;while(s);%时域采样序列分析 if(s==1) l=1; k=0;while(1)if(k==0)A=yesinput('please input the Amplitude:\n',...444.128,[100,1000]); a=yesinput('please input the Attenuation Coefficient:\n',...222.144,[100,600]); w=yesinput('please input the Angle Frequence(rad/s):\n',...222.144,[100,600]); end k=k+1;fs=yesinput('please input the sample frequence:\n',...1000,[100,1200]); Xa=FF(A,a,w,fs); i=i+1;string+['fs=',num2str(fs)]; figure(i)DFT(Xa,50,string); 1=yesinput 1=str2num(1); end%系统和响应分析else if(s==2)kk=str2num(kk);while(kk)if(kk==1)m=conv(Xb,Hb);N=5;i=i+1;figure(i)string=('hb(n)');Hs=DFT(Hb,4,string);i=i+1;figure(i)string('xb(n)');DFT(Xb,2,string);string=('y(n)=xb(n)*hb(n)');else if (kk==2)m=conv(Ha,Ha);N=19;string=('y(n)=ha(n)*(ha(n)');else if (kk==3)Xc=stepseq(1,1,5);m=conv(Xc,Ha);N=14;string=('y(n)=xc(n)*ha(n)');endendendi=i+1;figure(i)DFT(m,N,string);kk=yesinputkk=str2num(kk);end卷积定理的验证else if(s==3)A=1;a=0.5;w=2,0734;fs=1;Xal=FF(A,a,w,fs);i=i+1;figure(i)string=('The xal(n)(A=1,a=0.4,T=1)'); [Xa,w]DFT(Xal,50,string);i=i+1;figure(i)string =('hb(n)');Hs=DFT(Hb,4,string);Ys=Xs.*Hs;y=conv(Xal,Hb);N=53;i=i+1;figure(i)string=('y(n)=xa(n)*hb(n)');[yy,w]=DFT(y,N,string);i=i+1;figure(i)subplot(2,2,1)plot(w/pi,abs(yy));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title(FT[x(n)*h(n)]');subplot(2,2,3)plot(w/pi,abs(Ys));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title('FT[xs(n)].FT[h(n)]');endendend子函数:离散傅立叶变换及X(n),FT[x(n)]的绘图函数function[c,l]=DFT(x,N,str)n=0:N-1;k=-200:200;w=(pi/100)*k;l=w;c=x*Xc=stepseq(1,1,5);子函数:产生信号function c=FF(A,a,w,fs)n=o:50-1;c=A*exp((-a)*n/fs).*sin(w*n/fs).*stepseq(0,0,49); 子函数:产生脉冲信号function [x,n]=impseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)==0];子函数:产生矩形框信号function [x,n]=stepseq(n0,n1,n2) n=[n1:n2];x=[(n-n0>=0)];四、 实验内容及步骤1、认真复习采样理论,离散信号与系统,线性卷积,序列的傅立叶变换及性质等有关内容,阅读本实验原理与方法。
重庆大学信号与系统实验(附标准答案)
2.当2π/ω为有理数时,则有2π/ω=N/M,这里N和M均为正整数,令N=2πM/ω,则
sinω(n+N)= sinω(n+ M2π/ω)= sin(ωn+ 2πM)= sinωn。
即这时正弦序列也是周期序列,且序列的最小周期为N=2πM/ω。
平移:将函数 沿横坐标平移 就得到函数
相乘:将 与 相乘,得到 。两波形重叠部分相乘有值,不重叠部分乘积为零
积分: 曲线下的面积即为 时刻的卷积。
2.2离散信号卷积和
输入为 ,输出为 的离散时间线性时不变系统的作用是用卷积求和来描述的:
信号 是系统对于单位冲激输入的响应。其计算步骤为:
横坐标 换成
翻转:将函数 以纵坐标为轴翻转,得到其对称函数
问题1:详细说明正弦离散时间信号的周期性与信号频率的关系,为什么?
答:根据周期序列的定义来讨论正弦离散时间信号的周期性,根据其周期性来找出其与信号频率
的关系。即找到一个正整数N使得恒等式sin(ωn)=sinω(n+N)成立。
分为几种情况讨论:
1.当2π/ω为整数时,令N=2π/ω,则
sinω(n+N)= sinω(n+2π/ω)= sin(ωn+2π)= sinωn。
12电科02班
姓名
艾渝
成绩
课程
名称
信号与系统(双语)
实验项目
名称
信号的时域表示、变换、采样及系统的时域特性
指导教师
文静
教师评语
()深入理解了实验原理,完成了实验步骤,实验过程原始记录翔实、清晰、准确,实验结果正确,分析透彻,很好地达到了实验目的。
重邮课程实验报告
一、实验名称数字信号处理实验二、实验目的1. 理解数字信号处理的基本概念和原理。
2. 掌握数字滤波器的设计方法及其应用。
3. 熟悉数字信号处理软件的使用,提高实验技能。
三、实验原理数字信号处理(Digital Signal Processing,DSP)是研究数字信号的产生、处理、分析和应用的科学。
本实验主要涉及以下几个方面:1. 数字滤波器的基本概念:数字滤波器是一种对数字信号进行频率选择的装置,可以用于信号的滤波、增强、抑制等。
2. 滤波器的设计方法:主要包括有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器的设计方法。
3. 数字信号处理软件的使用:利用MATLAB等软件进行数字信号处理实验,提高实验效率。
四、实验器材1. 实验计算机2. MATLAB软件3. 实验指导书五、实验步骤1. 实验一:FIR滤波器设计(1)打开MATLAB软件,创建一个新的脚本文件。
(2)根据实验指导书的要求,输入FIR滤波器的参数,如滤波器的阶数、截止频率等。
(3)运行脚本文件,观察滤波器的频率响应曲线。
(4)根据实验结果,分析滤波器的性能。
2. 实验二:IIR滤波器设计(1)打开MATLAB软件,创建一个新的脚本文件。
(2)根据实验指导书的要求,输入IIR滤波器的参数,如滤波器的阶数、截止频率等。
(3)运行脚本文件,观察滤波器的频率响应曲线。
(4)根据实验结果,分析滤波器的性能。
3. 实验三:数字信号处理软件的使用(1)打开MATLAB软件,创建一个新的脚本文件。
(2)根据实验指导书的要求,输入信号处理的参数,如采样频率、滤波器类型等。
(3)运行脚本文件,观察信号处理的结果。
(4)根据实验结果,分析数字信号处理软件的应用。
六、实验结果与分析1. 实验一:FIR滤波器设计实验结果表明,所设计的FIR滤波器具有较好的频率选择性,滤波效果符合预期。
2. 实验二:IIR滤波器设计实验结果表明,所设计的IIR滤波器具有较好的频率选择性,滤波效果符合预期。
实验一 数字信号处理 实验报告
1.已知系统的差分方程如下式:y1(n)=0.9y1(n-1)+x(n)程序编写如下:(1)输入信号x(n)=R10 (n),初始条件y1(-1)=1,试用递推法求解输出y1(n);a=0.9; ys=1; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=ones(1,10); %矩型序列R10(n)=u(n)-u(n-10),定义其宽度为0~9n=1:35; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=sign(sign(10-n)+1);B=1;A=[1,-a]; %差分方程系数xi=filtic(B,A,ys); %由初始条件计算等效初始条件输入序列xiyn=filter(B,A,xn,xi); %调用filter解差分方程,求系统输出y(n)n=0:length(yn)-1;subplot(2,1,1);stem(n,yn,'linewidth',2); axis([-5,15,0,8]); grid ontitle('图(a) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=1 ');xlabel('n');ylabel('y(n)')(2) 输入信号x(n)=R10 (n),初始条件y1(-1)=0,试用递推法求解输出y1(n)。
a=0.9; ys=0; %设差分方程系数a=0.9,初始状态: y(-1)=1xn=ones(1,10); %矩型序列R10(n)=u(n)-u(n-10)B=1;A=[1,-a]; %差分方程系数xi=filtic(B,A,ys); %由初始条件计算等效初始条件输入序列xiyn=filter(B,A,xn,xi); %调用filter解差分方程,求系统输出y(n)n=0:length(yn)-1;subplot(2,1,2);stem(n,yn, 'linewidth',2); axis([-5,15,0,8]); grid ontitle('图(b) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=0 ');xlabel('n');ylabel('y(n)') 图形输出如下:-505101502468图(a) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=1ny (n )-55101502468图(b) y1(n)=0.9y1(n-1)+x(n) 初始条件y1(-1)=0ny (n )2. 已知系统差分方程为: y 1(n )=0.9y 1(n -1)+x (n ) 用递推法求解系统的单位脉冲响应h (n ),要求写出h (n )的封闭公式,并打印h (n )~n 曲线。
重庆大学通信学院数字信号处理实验第四次实验报告
0.511.522.5100150200250300Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.51 1.522.5-30-20-10010Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )0.51 1.522.5-100-50050100Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.51 1.522.5-80-60-40-200Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )0.51 1.522.5-1000-500500Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s)0.51 1.522.5-30-20-10010Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )图1 第一题的频率响应 图2 第二题的频率响应图3 第三题的频率响应图4 第四题的频率响应第五题:零、极点分布图-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.814Real PartI m a g i n a r y P a r t结果单位抽样响应:y =1.0000 0.2000 -0.4000 -0.2000 1.0000 0 012345678910-0.4-0.20.20.40.60.81单位抽样响应用filter 函数: b=[1 0.2 -0.4 -0.2 1];a=1; %注意此处分母的表示 x=zeros(1,10);x(1)=1;%单位抽样脉冲 y=filter(b,a,x) stem(y);title('单位抽样响应')用impz 函数:b=[1 0.2 -0.4 -0.2 1]; a=1;y=impz(b,a);单位阶跃响应:-11234567891000.20.40.60.811.21.41.6单位阶跃响应y =1.0000 1.2000 0.8000 0.6000 1.6000 1.6000 1.6000 1.6000 1.6000 1.6000程序:b=[1 0.2 -0.4 -0.2 1]; a=1;x=ones(1,20);x(1)=1;%单位阶跃信号 y=filter(b,a,x)第六题:零、极点分布图-1-0.50.511.5-1-0.8-0.6-0.4-0.200.20.40.60.81Real PartI m a g i n a r y P a r tB=[0.3 -0.5 0];A=[1 -0.7 0.8];zplane(B,A) %零、极点分布图-101-1-0.500.51Real PartI m a g i n a r y P a r t系统函数极零点分布图-1-0.500.51-1-0.500.51Real PartI m a g i n a r y P a r t最小相移网络零点分布图-11-1-0.500.51Real PartI m a g i n a r y P a r t全通网络零点分布图-11-1-0.500.51Real PartI m a g i n a r y P a r t修正网络零点分布图B=[0.3 -0.5]; A=[1 -0.7 0.8]; subplot(2,2,1);zplane(B,A)title('系统函数极零点分布图') %最小相移网络: B=[1 -0.6];A=[1 -0.7 0.8]; subplot(2,2,2) zplane(B,A);title('最小相移网络零点分布图') %全通网络: B=[-0.6 1];A=[1 -0.6]; subplot(2,2,3); zplane(B,A);title('全通网络零点分布图') %修正网络: B=[-0.6 1]; A=[1 -0.7 0.8]; subplot(2,2,4); zplane(B,A);title('修正网络零点分布图')对比区别:0500100015002000123系统函数极频率响应0500100015002000-4-2024系统函数极频率相位响应500100015002000246修正网络频率响应0500100015002000-4-224修正网络频率相位响应B=[0.3 -0.5]; A=[1 -0.7 0.8]; w=0:0.01:6*pi; h=freqz(B,A,w) subplot(2,2,1); plot(abs(h));title('系统函数极频率响应') subplot(2,2,2); plot(angle(h));title('系统函数极频率相位响应')B=[-0.6 1]; A=[1 -0.7 0.8]; w=0:0.01:6*pi;[h,w]=freqz(B,A,w) subplot(2,2,3); plot(abs(h));title('修正网络频率响应') subplot(2,2,4); plot(angle(h));title('修正网络频率相位响应')第七题:说明grpdelay 的使用方法,计算1和5中的群延时0.51 1.522.53012345678910Normalized Frequency (⨯π rad/sample)G r o u p d e l a y (s a m p l e s )b=[0.2 0 -0.3]; a=[1 -0.4 0.8]; w=0:0.01:3*pi; grpdelay(b,a,w);第五题的群延时00.51 1.522.53-15-10-55101520Normalized Frequency (⨯π rad/sample)G r o u p d e l a y (s a m p l e s )b=[1 0.2 -0.4 -0.2 1]; a=[1];w=0:0.01:3*pi; grpdelay(b,a,w);群延时函数的使用方法: help grpdelayGRPDELAY Group delay of a digital filter.[Gd,W] = GRPDELAY(B,A,N) returns length N vectors Gd and W containing the group delay and the frequencies (in radians) at which it is evaluated. Group delay is -d{angle(w)}/dw. The frequencyresponse is evaluated at N points equally spaced around the upper half of the unit circle. For an FIR filter where N is a power of two, the computation is done faster using FFTs. If you don't specify N, it defaults to 512.GRPDELAY(B,A,N,'whole') uses N points around the whole unit circle.[Gd,F] = GRPDELAY(B,A,N,Fs) and [Gd,F] = GRPDELAY(B,A,N,'whole',Fs) given sampling frequency Fs in Hz return a vector F in Hz.Gd = GRPDELAY(B,A,W) and Gd = GRPDELAY(B,A,F,Fs) return the group delay evaluated at the points in W (in radians/sample) or F (in Hz).GRPDELAY(B,A,...) with no output arguments plots the group delay in the current figure window.提高1:级联后的频率响应0.51 1.522.5-800-600-400-200Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.51 1.522.5-200-150-100-500X: 0.2992Y: -2.991Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )b=0.175*[1 3 3 1]; a=[1];w=0:0.01:3*pi;freqz(b,a,w);最高的点x=0, y=0X=0.2992,y=-2.991Y*pi=0.9400计算的wc= 2*acos(2^(-1/6))=0.9430。
课程大作业——数字信号处理实验报告
实验一 信号、系统及系统响应一.实验目的1.熟悉理想采样的性质,了解信号采用前后的频谱变化,加深对采样定理的理解。
2.熟悉离散信号和系统的时域特性。
3.熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。
4.掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。
二.实验原理1.连续时间信号的采样采样是从连续时间信号到离散时间信号的过渡桥梁,对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生的变化以及信号内容不丢失的条件,而且有助于加深对拉氏变换、傅氏变换、z 变换和序列傅氏变换之间关系的理解。
对一个连续时间信号进行理想采样的过程可以表示为该信号和个周期冲激脉冲的乘积,即)()()(ˆt M t x t xa a = (1-1) 其中)(ˆt xa 是连续信号)(t x a 的理想采样,)(t M 是周期冲激脉冲 ∑+∞-∞=-=n nT t t M )()(δ (1-2)它也可以用傅立叶级数表示为:∑+∞-∞=Ω=n tjm s e T t M 1)( (1-3)其中T 为采样周期,T s /2π=Ω是采样角频率。
设)(s X a 是连续时间信号)(t x a 的双边拉氏变换,即有:⎰+∞∞--=dt e t xs X st aa )()( (1-4)此时理想采样信号)(ˆt xa 的拉氏变换为 ∑⎰+∞-∞=+∞∞--Ω-===m s a sta a jm s X T dt e t x s X )(1)(ˆ)(ˆ (1-5)作为拉氏变换的一种特例,信号理想采样的傅立叶变换[]∑+∞-∞=Ω-Ω=Ωm s a a m j X T j X )(1)(ˆ (1-6)由式(1-5)和式(1-6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率。
根据Shannon 采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混淆现象。
数字信号处理实验报告
一、实验目的1. 理解数字信号处理的基本概念和原理。
2. 掌握离散时间信号的基本运算和变换方法。
3. 熟悉数字滤波器的设计和实现。
4. 培养实验操作能力和数据分析能力。
二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。
本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。
2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。
3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。
4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。
三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。
(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。
2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。
(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。
3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。
(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。
4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。
(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。
四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。
数字信号处理实验报告
数字信号处理实验报告实验报告
实验题目:数字信号处理实验
实验日期:XXXX年XX月XX日
实验目的:
1. 了解数字信号处理的基本概念和原理;
2. 掌握数字信号的采样、量化和编码方法;
3. 学习数字信号处理的基本算法和应用。
实验内容:
1. 采样与重建
1.1 采样定理的验证
1.2 重建信号的实现
2. 量化与编码
2.1 量化方法的比较
2.2 编码方法的选择与实现
3. 数字滤波器设计与实现
3.1 FIR滤波器设计方法
3.2 IIR滤波器设计方法
实验步骤:
1. 使用示波器对输入的模拟信号进行采样,记录采样频率和采样点数。
2. 使用恢复信号方法,将采样得到的数字信号重建为模拟信号,并进行对比分析。
3. 对重建的信号进行量化处理,比较不同量化方法的效果,选择合适的方法进行编码。
4. 设计并实现数字滤波器,比较FIR和IIR滤波器的性能和实
现复杂度。
实验结果与分析:
1. 采样与重建实验结果表明,在满足采样定理的条件下,采样频率越高,重建信号的质量越高。
2. 量化与编码实验结果表明,在相同位数下,线性量化方法优于非线性量化方法,而编码方法可以根据信号特性选择,例如
差分编码适用于连续变化的信号。
3. 数字滤波器实验结果表明,FIR滤波器相对于IIR滤波器在时域和频域上更易于设计和理解,但实现复杂度较高。
实验结论:
数字信号处理是对模拟信号进行采样、量化和编码等处理,具有较高的灵活性和可靠性。
在实际应用中,应根据需要选择合适的采样频率、量化位数和编码方式,并根据信号特性选择合适的滤波器设计方法。
数字信号处理实验报告
数字信号处理实验报告实验一:混叠现象的时域与频域表现实验原理:当采样频率Fs不满足采样定理,会在0.5Fs附近引起频谱混叠,造成频谱分析误差。
实验过程:考虑频率分别为3Hz,7Hz,13Hz 的三个余弦信号,即:g1(t)=cos(6πt), g2(t)=cos(14πt), g3(t)=cos(26πt),当采样频率为10Hz 时,即采样间隔为0.1秒,则产生的序列分别为:g1[n]=cos(0.6πn), g2[n]=cos(1.4πn), g3[n]=cos(2.6πn)对g2[n],g3[n] 稍加变换可得:g2[n]=cos(1.4πn)=cos((2π-0.6π)n)= cos(0.6πn)g3[n]=cos(2.6πn)= cos((2π+0.6π)n)=cos(0.6πn)利用Matlab进行编程:n=1:300;t=(n-1)*1/300;g1=cos(6*pi*t);g2=cos(14*pi*t);g3=cos(26*pi*t);plot(t,g1,t,g2,t,g3);k=1:100;s=k*0.1;q1=cos(6*pi*s);q2=cos(14*pi*s);q3=cos(26*pi*s);hold on; plot(s(1:10),q1(1:10),'bd');figuresubplot(2,2,1);plot(k/10,abs(fft(q1)))subplot(2,2,2);plot(k/10,abs(fft(q2)))subplot(2,2,3);plot(k/10,abs(fft(q3)))通过Matlab软件的图像如图所示:如果将采样频率改为30Hz,则三信号采样后不会发生频率混叠,可运行以下的程序,观察序列的频谱。
程序编程改动如下:k=1:300;q=cos(6*pi*k/30);q1=cos(14*pi*k/30);q2=cos(26*pi*k/30);subplot(2,2,1);plot(k/10,abs(fft(q)))subplot(2,2,2);plot(k/10,abs(fft(q1)))subplot(2,2,3);plot(k/10,abs(fft(q2)))得图像:问题讨论:保证采样后的信号不发生混叠的条件是什么?若信号的最高频率为17Hz,采样频率为30Hz,问是否会发生频率混叠?混叠成频率为多少Hz的信号?编程验证你的想法。
重庆大学光电学院数字信号处理实验
五、实验过程原始记录(实验源程序、图标、计算等)1、用matlab 编制信号产生子程序,产生以下典型信号序列。
()100处有一单位脉冲,1在,)(单位脉冲序列1≤≤=n nn δ()()100,,1处及以后为4,在0前为4在,单位阶跃序列2≤≤==n n nn u()()n R 8矩形序列3()()9035sin 3正弦序列4≤≤⎪⎪⎭⎫⎝⎛+•=n n n x ππ()()90)4(5)3(4)2(3)1(2)(序列5≤≤-+-+-+-+=n n n n nn n x δδδδδ()()90)3(2)2()1(2)(序列6≤≤-+-+-+=n n nn n n h δδδδ2、利用MATLAB 编程完成序列(5)和(6)的移位、反转、加法、乘法等运算,并绘制运算后序列的波形。
()())4(5)3(4)2(3)1(2)(序列5-+-+-+-+=n n n nn n x δδδδδ()())3(2)2()1(2)(序列6-+-+-+=n n nn n h δδδδ3、利用MATLAB编制一个计算两个序列线性卷积的通用程序,计算上述两序列,并绘制卷积后序列的波形。
六、实验结果分析1.如何产生方波信号序列和锯齿波信号序列?答:方波信号由square函数可得,锯齿波信号由循环语句产生。
%方波T=0:0.001:2*pi; %方波的时间向量y=square(6*T); %方波w=6,周期为T=2*pi/6subplot(2,1,1);plot(T,y); %画方波title('方波');axis([T(1)-1 T(end)+1 -2 2]); %坐标轴区域hold on%锯齿波三、实验原理一个序列x (n )的离散时间傅里叶变换就是它的频谱函数。
()()()120N j nk N kn NX k X ex n W ωπω-====∑四、使用仪器、器材计算机,MATLAB五、实验过程原始记录(实验源程序、图标、计算等)(1)用matlab 编程产生并画出信号x1(n)、x2(n)、x3(n)、x4(n)、x5(n)。
数字信号处理实验报告11-12-10
《数字信号处理》实验报告专业学号姓名实验一 利用FFT 实现快速卷积一、实验目的1.加深理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT 进行数字信号处理。
2.掌握循环卷积和线性卷积两者之间的关系。
二、实验原理用FFT 来快速计算有限长度序列的线性卷积。
这种方法就是先将输入信号x(n)通过FFT 变换为它的频谱采样值()x k ,然后再和FIR 滤波器的频响采样值H(k)相乘,H(k)可事先存放在存储器中,最后再将乘积H(k)X(k)通过快速傅里叶变换(简称IFFT )还原为时域序列,即得到输出y(n)。
现以FFT 求有限长序列的卷积及求有限长度序列与较长序列间的卷积为例来讨论FFT 的快速卷积方法。
序列x(n)和h(n)的长差不多。
设x(n)的长为N 1,h(n)的长为N 2,要求∑-=-=⊗=1)()()()()(N m m n x m h n y n x n y用FFT 完成这一卷积的具体步骤如下:①为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度121-+≥N N N ,若采用基2-FFT 完成卷积运算,要求m N 2=(m 为整数)。
②用补零方法使x(n)和h(n)变成列长为N 的序列。
1122()01()01()01()01x n n N x n N n N h n n N h n N n N ≤≤-⎧=⎨≤≤-⎩≤≤-⎧=⎨≤≤-⎩③用FFT 计算x(n)和h(n)的N 点离散傅里叶变换。
④完成X(k)和H(k)乘积,)()()(k H k x k Y = ⑤用FFT 计算 ()Y k 的离散傅里叶反变换得*10*10)(1)(1)(⎭⎬⎫⎩⎨⎧⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡=∑∑-=--=N k nk N nk N N k W k Y N W k Y N n y三、主要实验仪器及材料微型计算机、Matlab6.5教学版。
四、实验内容1.数字滤波器的脉冲响应为()22()1/2(),8nN h n R n N ==。
《数字信号处理》实验报告
《数字信号处理》实验报告年级:2011级班级:信通4班姓名:朱明贵学号:111100443老师:李娟福州大学2013 年11 月实验一快速傅里叶变换(FFT)及其应用一、实验目的1.在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。
2.熟悉应用FFT对典型信号进行频谱分析的方法。
3.了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
4.熟悉应用FFT实现两个序列的线性卷积和相关的方法。
二、实验类型演示型三、实验仪器装有MATLAB语言的计算机四、实验原理在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使用离散Fouier变换(DFT)。
这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为:反变换为:有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。
FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。
它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。
常用的FFT 是以2为基数的,其长度。
它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。
(一)在运用DFT进行频谱分析的过程中可能的产生三种误差1.混叠序列的频谱是被采样信号频谱的周期延拓,当采样速率不满足Nyquist定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。
数字信号处理实验报告_完整版
实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。
2.应用DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列x (n )(0≤n ≤N −1)的离散时间傅里叶变换X (e jω)在频率区间(0≤ω≤2π)的N 个等间隔分布的点kω=2πk /N (0≤k ≤N −1)上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列x (n )的N 点DFT X k ,实际上就是x (n )序列的DTFT 在N 个等间隔频率点kω=2πk /N (0≤k ≤N −1)上样本X k 。
2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFTX (ejω)12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
数字信号处理实验报告
数字信号处理实验报告数字信号处理实验报告一、实验目的本实验旨在通过数字信号处理的方法,对给定的信号进行滤波、频域分析和采样率转换等操作,深入理解数字信号处理的基本原理和技术。
二、实验原理数字信号处理(DSP)是一种利用计算机、数字电路或其他数字设备对信号进行各种处理的技术。
其主要内容包括采样、量化、滤波、变换分析、重建等。
其中,滤波器是数字信号处理中最重要的元件之一,它可以用来提取信号的特征,抑制噪声,增强信号的清晰度。
频域分析是指将时域信号转化为频域信号,从而更好地理解信号的频率特性。
采样率转换则是在不同采样率之间对信号进行转换,以满足不同应用的需求。
三、实验步骤1.信号采集:首先,我们使用实验室的信号采集设备对给定的信号进行采集。
采集的信号包括噪声信号、含有正弦波和方波的混合信号等。
2.数据量化:采集到的信号需要进行量化处理,即将连续的模拟信号转化为离散的数字信号。
这一步通常通过ADC(模数转换器)实现。
3.滤波处理:将量化后的数字信号输入到数字滤波器中。
我们使用不同的滤波器,如低通、高通、带通等,对信号进行滤波处理,以观察不同滤波器对信号的影响。
4.频域分析:将经过滤波处理的信号进行FFT(快速傅里叶变换)处理,将时域信号转化为频域信号,从而可以对其频率特性进行分析。
5.采样率转换:在进行上述处理后,我们还需要对信号进行采样率转换。
我们使用了不同的采样率对信号进行转换,并观察采样率对信号处理结果的影响。
四、实验结果及分析1.滤波处理:经过不同类型滤波器处理后,我们发现低通滤波器可以有效抑制噪声,高通滤波器可以突出高频信号的特征,带通滤波器则可以提取特定频率范围的信号。
这表明不同类型的滤波器在处理不同类型的信号时具有不同的效果。
2.频域分析:通过FFT处理,我们将时域信号转化为频域信号。
在频域分析中,我们可以更清楚地看到信号的频率特性。
例如,对于噪声信号,我们可以看到其频率分布较为均匀;对于含有正弦波和方波的混合信号,我们可以看到其包含了不同频率的分量。
数字信号处理实验报告(全)
实验一、离散时间系统及离散卷积1、单位脉冲响应源程序:function pr1() %定义函数pr1a=[1,-1,0.9]; %定义差分方程y(n)-y(n-1)+0.9y(n-2)=x(n) b=1;x=impseq(0,-20,120); %调用impseq函数n=[-40:140]; %定义n从-20 到120h=filter(b,a,x); %调用函数给纵座标赋值figure(1) %绘图figure 1 (冲激响应) stem(n,h); %在图中绘出冲激title('冲激响应'); %定义标题为:'冲激响应'xlabel('n'); %绘图横座标为nylabel('h(n)'); %绘图纵座标为h(n)figure(2) %绘图figure 2[z,p,g]=tf2zp(b,a); %绘出零极点图zplane(z,p)function [x,n]=impseq(n0,n1,n2) %声明impseq函数n=[n1:n2];x=[(n-n0)==0];结果:Figure 1:Figure 2:2、离散系统的幅频、相频的分析源程序:function pr2()b=[0.0181,0.0543,0.0543,0.0181];a=[1.000,-1.76,1.1829,-0.2781];m=0:length(b)-1; %m从0 到3l=0:length(a)-1; %l从0 到3K=5000;k=1:K;w=pi*k/K; %角频率wH=(b*exp(-j*m'*w))./(a*exp(-j*l'*w));%对系统函数的定义magH=abs(H); %magH为幅度angH=angle(H); %angH为相位figure(1)subplot(2,1,1); %在同一窗口的上半部分绘图plot(w/pi,magH); %绘制w(pi)-magH的图形grid;axis([0,1,0,1]); %限制横纵座标从0到1xlabel('w(pi)'); %x座标为 w(pi)ylabel('|H|'); %y座标为 angle(H)title('幅度,相位响应'); %图的标题为:'幅度,相位响应' subplot(2,1,2); %在同一窗口的下半部分绘图plot(w/pi,angH); %绘制w(pi)-angH的图形grid; %为座标添加名称xlabel('w(pi)'); %x座标为 w(pi)ylabel('angle(H)'); %y座标为 angle(H)结果:3、卷积计算源程序:function pr3()n=-5:50; %声明n从-5到50u1=stepseq(0,-5,50); %调用stepseq函数声用明u1=u(n)u2=stepseq(10,-5,50); %调用stepseq函数声用明u2=u(n-10) %输入x(n)和冲激响应h(n)x=u1-u2; %x(n)=u(n)-u(n-10)h=((0.9).^n).*u1; %h(n)=0.9^n*u(n)figure(1)subplot(3,1,1); %绘制第一个子图stem(n,x); %绘制图中的冲激axis([-5,50,0,2]); %限定横纵座标的范围title('输入序列'); %规定标题为:'输入序列'xlabel('n'); %横轴为nylabel('x(n)'); %纵轴为x(n)subplot(3,1,2); %绘制第二个子图stem(n,h); %绘制图中的冲激axis([-5,50,0,2]); %限定横纵座标的范围title('冲激响应序列'); %规定标题为:'冲激响应序列'xlabel('n'); %横轴为nylabel('h(n)'); %纵轴为h(n)%输出响应[y,ny]=conv_m(x,n,h,n); %调用conv_m函数subplot(3,1,3); %绘制第三个子图stem(ny,y);axis([-5,50,0,8]);title('输出响应'); %规定标题为:'输出响应'xlabel('n');ylabel('y(n)'); %纵轴为y(n)%stepseq.m子程序%实现当n>=n0时x(n)的值为1function [x,n]=stepseq(n0,n1,n2)n=n1:n2;x=[(n-n0)>=0];%con_m的子程序%实现卷积的计算function [y,ny]=conv_m(x,nx,h,nh)nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h));ny=[nyb:nye];y=conv(x,h);结果:实验二、离散傅立叶变换与快速傅立叶变换1、离散傅立叶变换(DFT)源程序:function pr4()F=50;N=64;T=0.000625;n=1:N;x=cos(2*pi*F*n*T); %x(n)=cos(pi*n/16)subplot(2,1,1); %绘制第一个子图x(n)stem(n,x); %绘制冲激title('x(n)'); %标题为x(n)xlabel('n'); %横座标为nX=dft(x,N); %调用dft函数计算x(n)的傅里叶变换magX=abs(X); %取变换的幅值subplot(2,1,2); %绘制第二个子图DFT|X|stem(n,X);title('DFT|X|');xlabel('f(pi)'); %横座标为f(pi)%dft的子程序%实现离散傅里叶变换function [Xk]=dft(xn,N)n=0:N-1;k=0:N-1;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;结果:F=50,N=64,T=0.000625时的波形F=50,N=32,T=0.000625时的波形:2、快速傅立叶变换(FFT)源程序:%function pr5()F=50;N=64;T=0.000625;n=1:N;x=cos(2*pi*F*n*T); %x(n)=cos(pi*n/16) subplot(2,1,1);plot(n,x);title('x(n)');xlabel('n'); %在第一个子窗中绘图x(n)X=fft(x);magX=abs(X);subplot(2,1,2);plot(n,X);title('DTFT|X|');xlabel('f(pi)'); %在第二个子图中绘图x(n)的快速傅%里叶变换结果:3、卷积的快速算法源程序:function pr6()n=0:14;x=1.^n;h=(4/5).^n;x(15:32)=0;h(15:32)=0;%到此 x(n)=1, n=0~14; x(n)=0,n=15~32% h(n)=(4/5)^n, n=0~14; h(n)=0,n=15~32subplot(3,1,1);stem(x);title('x(n)');axis([1,32,0,1.5]); %在第一个子窗绘图x(n)横轴从1到32,纵轴从0到1.5 subplot(3,1,2);stem(h);title('h(n)');axis([1,32,0,1.5]); %在第二个子窗绘图h(n)横轴从1到32,纵轴从0到1.5 X=fft(x); %X(n)为x(n)的快速傅里叶变换H=fft(h); %H(n)为h(n)的快速傅里叶变换Y=X.*H; %Y(n)=X(n)*H(n)%Y=conv(x,h);y=ifft(Y); %y(n)为Y(n)的傅里叶反变换subplot(3,1,3) %在第三个子窗绘图y(n)横轴从1到32,纵轴从0到6 stem(abs(y));title('y(n=x(n)*h(n))');axis([1,32,0,6]);结果:实验三、IIR数字滤波器设计源程序:function pr7()wp=0.2*pi;ws=0.3*pi;Rp=1;As=25;T=1;Fs=1/T;OmegaP=(2/T)*tan(wp/2); %OmegaP(w)=2*tan(0.1*pi) OmegaS=(2/T)*tan(ws/2); %OmegaS(w)=2*tan(0.15*pi)ep=sqrt(10^(Rp/10)-1);Ripple=sqrt(1/(1+ep.^2));Attn=1/10^(As/20);N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(OmegaP/OmegaS) ));OmegaC=OmegaP/((10.^(Rp/10)-1).^(1/(2*N)));[cs,ds]=u_buttap(N,OmegaC);[b,a]=bilinear(cs,ds,Fs);[mag,db,pha,w]=freqz_m(b,a);subplot(3,1,1); %在第一个子窗绘制幅度响应的图形plot(w/pi,mag);title('幅度响应');xlabel('w(pi)');ylabel('H');axis([0,1,0,1.1]);set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);set(gca,'YTickmode','manual','YTick',[0,Attn,Ripple,1]);grid;subplot(3,1,2); %在第二个子窗以分贝为单位绘制幅度响应的图形plot(w/pi,db);title('幅度响应(dB)');xlabel('w(pi)');ylabel('H');axis([0,1,-40,5]);set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);set(gca,'YTickmode','manual','YTick',[-50,-15,-1,0]);grid;subplot(3,1,3); %在第三个子窗绘制相位响应的图形plot(w/pi,pha);title('相位响应');xlabel('w(pi)');ylabel('pi unit');%axis([0,1,0,1.1]);set(gca,'XTickmode','manual','XTick',[0,0.2,0.35,1.1]);set(gca,'YTickmode','manual','YTick',[-1,0,1]);grid;function [b,a]=u_buttap(N,OmegaC)[z,p,k]=buttap(N);p=p*OmegaC;k=k*OmegaC.^N;B=real(poly(z));b0=k;b=k*B;a=real(poly(p));function [mag,db,pha,w]=freqz_m(b,a)[H,w]=freqz(b,a,1000,'whole');H=(H(1:501))';w=(w(1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);结果:实验四、FIR数字滤波器的设计源程序:function pr8()wp=0.2*pi;ws=0.35*pi;tr_width=ws-wp;M=ceil(6.6*pi/tr_width)+1;n=0:M-1;wc=(ws+wp)/2;alpha=(M-1)/2;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);w_ham=(hamming(M))';h=hd.*w_ham;[mag,db,pha,w]=freqz_m(h,[1]);delta_w=2*pi/1000;Rp=-(min(db(1:wp/delta_w+1)));As=-round(max(db(ws/delta_w+1:501)));subplot(2,2,1);stem(n,hd);title('理想冲激响应');axis([0,M-1,-0.1,0.3]);ylabel('hd(n)');subplot(2,2,2);stem(n,h);title('实际冲激响应');axis([0,M-1,-0.1,0.3]);ylabel('h(n)');subplot(2,2,3);plot(w/pi,pha);title('滤波器相位响应');axis([0,1,-pi,pi]);ylabel('pha');set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]); set(gca,'YTickmode','manual','YTick',[-pi,0,pi]); grid;subplot(2,2,4);plot(w/pi,db);title('滤波器幅度响应');axis([0,1,-100,10]);ylabel('H(db)');set(gca,'XTickmode','manual','XTick',[0,0.2,0.3,1.1]); set(gca,'YTickmode','manual','YTick',[-50,-15,0]);function [mag,db,pha,w]=freqz_m(b,a)[H,w]=freqz(b,a,1000,'whole');H=(H(1:501))';w=(w(1:501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);结果:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)用matlab编制FFT函数对上述信号进行频谱分析,并画出上述信号谱图。
六、实验结果分析
1.说明FFT长度N改变对频谱的影响
答:FFT随长度N增加,主瓣宽度减小,分辨率提高,主峰位置也较准确
2.简要回答以下问题:
离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号xa(t)进行等间隔采样,采样间隔为T,得到一个有序的数字序列{xa(nT)}就是离散时间信号,简称序列。
2.常用序列
单位脉冲序列(单位抽样)、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦型序列等。
3.序列的基本运算
3.1序列的加法:z(n)=x (n)+y(n)
加法用于序列的合成。它把两个序列中位置序号相同的样本相加,形成新的样本序列。
3.2序列的乘法:z(n)=x(n)×y(n)
序列的乘法是一种非线性运算,它用于信号的调制。它把两个序列中位置序号相同的样本相乘,形成新的样本序列。
4.序列的卷积
上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。
四、使用仪器、器材
计算机,MATLAB软件
五、实验过程原始记录(实验源程序、图标、计算等)
1、用matlab编制信号产生子程序,产生以下典型信号序列。
2、利用MATLAB编程完成序列(5)和(6)的移位、反转、加法、乘法等运算,并绘制运算后序列的波形。
3、利用MATLAB编制一个计算两个序列线性卷积的通用程序,计算上述两序列,并绘制卷积后序列的波形。
3、利用MATLAB编制一个计算两个序列线性卷积的通用程序,计算上述两序列,并绘制卷积后序列的波形。
三、实验原理
1.序列的基本概念
离散时间信号在数学上可用时间序列{x(n)}来表示,其中x(n)代表序列的第n个数字,n代表时间的序列。注意:x(n)只在n为整数时才有意义, n不是整数时无定义,但不能认为是0。
plot(x,y);
title('锯齿波')
2、实验中所产生的正弦序列的频率是多少?是否是周期序列?
答:实验中正弦序列的频率是10HZ,是周期序列。
实验题目
用FFT进行谱分析
实验时间
2017年11月21日
实验地点
主教1计性√综合性
教师评语:
□出勤率好□原理正确□方案合理
(2)
答:由于FFT算法对序列长度的要求是 N=2^M,M为正整数。所以,当周期信号序列一个周期的长度满足 N=2^M(M为正整数)的条件时,FFT可以用来分析周期信号的频谱。不是真实的频谱。因为序列的周期N=10不是 2 的整数次幂,所以不是真实的。
□实验结果正确□回答问题正确□报告规范
一、实验目的
(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。熟悉FFT程序结构及编程方法。
(2)熟悉应用FFT对确定信号进行谱分析方法,熟悉FFT算法原理和FFT子程序的应用。
(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应有FFT。
3.掌握序列的相加、相乘、移位、反转等基本运算及计算机实现与作用。
4.掌握线性卷积软件实现的方法。
5.掌握计算机的使用方法和常用系统软件及应用软件的使用。
6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。
二、实验内容
1、用matlab编制信号产生子程序,产生以下典型信号序列。
2、利用MATLAB编程完成序列(5)和(6)的移位、反转、加法、乘法等运算,并绘制运算后序列的波形。
四个步骤:
(1)反转:先将x(n)和h(n)的变量n换成m,变成x(m)和h(m),再将h(m)以纵轴为对称轴反转成h(-m)。
(2)移位:将h(-m)移位n,得h(n-m)。当n为正数时,右移n位;当n为负数时,左移n位。
(3)相乘:将h(n-m)和x(m)的对应点值相乘。
(4)求和:将以上所有对应点的乘积累加起来,即得y(n)。
①在N=8时,x2(n)和x3(n)的幅频特性会相同吗?为什么?N=16呢?
②FFT在什么条件下也可以用来分析周期信号序列的频谱?如果正弦信号系统sin(2πf0k),f0=0.1Hz,用16点FFT来做DFT运算,得到的频谱是信号本身的真实谱吗?为什么?
(1)答:不相同。当N=8时,序列x1(n)和x2(n)中相同的元素值对应的 n 值是不同的,所乘的旋转因子的值也不同,因而得到的最终结果也是不同的。同理,N=16时,所得的幅频特性也是不同的。
实验题目
离散时间信号分析
实验时间
2017年10月24日
实验地点
主教1118
实验成绩
实验性质
□验证性□设计性√综合性
教师评语:
□出勤率好□原理正确□方案合理
□实验结果正确□回答问题正确□报告规范
一、实验目的
1.掌握各种常用的序列,理解其数学表达式和波形表示。
2.掌握在计算机中生成及绘制数字信号波形的方法。
六、实验结果分析
1.如何产生方波信号序列和锯齿波信号序列?
答:方波信号由square函数可得,锯齿波信号由循环语句产生。
%方波
T=0:0.001:2*pi;%方波的时间向量
y=square(6*T);%方波w=6,周期为T=2*pi/6
subplot(2,1,1);
plot(T,y);%画方波
title('方波');
二、实验内容
(1)用matlab编程产生并画出信号x1(n)、x2(n)、x3(n)、x4(n)、x5(n)。
(2)用matlab编制FFT函数对上述信号进行频谱分析,并画出上述信号谱图。
三、实验原理
一个序列x(n)的离散时间傅里叶变换就是它的频谱函数。
四、使用仪器、器材
计算机,MATLAB
五、实验过程原始记录(实验源程序、图标、计算等)
axis([T(1)-1 T(end)+1 -2 2]);%坐标轴区域
hold on
%锯齿波
x=-10:10;
y=[];
for i=1:21%rem为取余函数,此循环使得y(i)交替取值1和-1
if rem(i,2)==0
y(i)=-1;
else
y(i)=1;
end
end
subplot(2,1,2);