信号处理实验报告、
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一题
如何用计算机模拟一个随机事件,并估计随机事件发生的概率以计算圆周率π。
解:
(一)蒙特卡洛方法可用于近似计算圆周率:让计算机每次随机生成两个0到1之间的数,看以这两个实数为横纵坐标的点是否在单位圆内。生成一系列随机点,统计单位圆内的点数与总点数,(圆面积和外切正方形面积之比为π:4),当随机点取得越多时,其结果越接近于圆周率。
代码:
N=100000000;
x=rand(N,1);
y=rand(N,1);
count=0;
for i=1:N
if (x(i)^2+y(i)^2<=1)
count=count+1;
end
end
PI=vpa(4*count/N,10)
PI =
3.1420384
蒙特卡洛法实验结果与试验次数相关,试验次数增加,结果更接近理论值
(二)18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为d的平行线,将一根长度为l (l 代码: a=input('输入a:'); l=input('输入l: '); n=input('输入n:'); x=unifrnd(0,a/2,[n,1]); f=unifrnd(0,pi,[n,1]); y=x<0.5*l*sin(f); m=sum(y); %S = sum(A) PI=vpa(2*l*n/(a*m)) 输入a:5 输入l: 2 输入n:1000000 PI = 3.1383994947176812040368076850427 布冯投针实验结果与针长相关,针越长,实验结果收敛性越好。 第二题 数字滤波器设计,自行设计参数 解:此题分为以下三个小问题: ①设计了一个采样频率为Fs=44100Hz的低通滤波器,通带内频率范围为0--5000Hz,过渡带为5000Hz---6600Hz,通带波纹不大于3dB,阻带衰减不小于40db。绘制出滤波器的特性图。 ②利用该低通滤波器对一个4000Hz与8000Hz混叠的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器效果。 ③下载一段语音信号,对其进行采样和加噪,然后用该低通滤波器对加噪后信号进行滤波,绘制出信号的时域波形和频谱,并对滤波前后信号进行对比。 代码: %第二题 %设计了一个采样频率为Fs=44100Hz的低通滤波器, %通带内频率范围为0--5000Hz, %过渡带为5000Hz---6600Hz, %通带波纹不大于3dB %阻带衰减不小于40db。 %绘制出滤波器的特性图。 wp=0.23*pi; ws=0.3*pi; wdelta=ws-wp; N=ceil(6.6*pi/wdelta); wn=(0.23+0.3)*pi/2; b=fir1(N,wn/pi,hamming(N+1)); figure(1); freqz(b,1,512); %利用该低通滤波器对一个4000Hz与8000Hz混叠的正弦信号进行处理,%对比滤波前后的信号时域和频域图,验证滤波器效果。 fs=44100; f1=4000; f2=8000; %滤波前时域 t=0:1/fs:1; s=sin(2*pi*f1*t)+sin(2*pi*f2*t); %滤波前频域 Fs=fft(s,1024); AFs=abs(Fs); f=(0:511)*fs/1024; %滤波后时域 sf=filter(b,1,s); %滤波后频域 Fsf=fft(sf,1024); AFsf=abs(Fsf); f=(0:511)*fs/1024; %画图 figure(2); subplot(221);plot(t,s);xlabel('时间/秒');ylabel('幅度'); title('信号滤波前时域图');axis([0.001 0.01 -2 2]); subplot(222);plot(f,AFs(1:512));xlabel('频率/赫兹');ylabel('幅度'); title('信号滤波前频域图');axis([0 10000 0 500]); subplot(223);plot(t,sf);xlabel('时间/秒');ylabel('幅度'); title('信号滤波后时域图');axis([0.001 0.01 -2 2]); subplot(224);plot(f,AFsf(1:512));xlabel('频率/赫兹');ylabel('幅度'); title('信号滤波后频域图');axis([0 10000 0 500]); %下载一段语音信号,对其进行采样和加噪,然后用该低通滤波器对加噪后信号进行滤波, %绘制出信号的时域波形和频谱,并对滤波前后信号进行对比。 fs=44100; [x,fs,bits]=wavread('music.wav'); sound(x,fs,bits); t=0:1/44100:(size(x)-1)/44100; x=x(:,1); x=x'; y=x+ 0.03*cos(2*pi*8000*t);%加噪 sound(y,fs,bits); f2=filter(b,1,y);%通过设计的低通滤波器 sound(f2,fs,bits); X=abs(fft(x)); X=X(1:length(x)/2); deltaf=fs/2/length(X); f=0:deltaf:fs/2-deltaf; plot(f,X); Y=abs(fft(y)); Y=Y(1:length(y)/2); plot(f,Y); F2=abs(fft(f2)); F2=F2(1:length(f2)/2); plot(f,F2);