职场文秘网

首页 > 领导讲话 > 安全讲话 / 正文

地震波观测系统的MATLAB仿真报告课程设计

2020-12-14 11:28:41

地震波观测系统的MATLAB仿真 课程名称 数字信号处理 实验项目 题目6 地震波观测系统的MATLAB仿真 指导教师 学 院 光电信息与通信工程 _ 专 业 电子信息工程 班级/学号 学生姓名 课设时间 2011-12- 28至2012-1-5 “数字信号处理课程设计”任务书 题目6 地震波观测系统的MATLAB仿真 主要 内容 掌握地震波观测系统的数字信号处理方法。实现宽频带系统的输出仿真到窄频带输出及地面运动恢复。

设计 要求 要求 以某地震台站记录的地震观测文件为例,选择合适滤波器揭示地面运动恢复和仿真的概念 步骤 1读取地震波观测文件数据,做出时域、频域图形。设计一个包含所有频率成分的宽频带滤波器,假定为宽频带地震仪,恢复地面运动。绘出滤波器频率特性、地面运动时域图。

2已知短周期窄带仪器的阻带边界频率为[0.01 4.5]Hz,通带边界频率为[0.1 3.8]Hz,通带波纹为1dB,阻带衰减20dB; 将宽频带仪器的输出仿真到短周期窄带仪器上;
并与窄带仪器的输出进行比较(画图)。绘出窄带仪器的频谱图。

3长周期地震仪的窄带仪器用低通滤波器表示,其阻带边界频率为0.1Hz,通带边界频率为0.02Hz,通带波纹为1dB,阻带衰减为30dB,将宽频带仪器的输出仿真到长周期窄带仪器上;
并与窄带仪器的输出比较。同步骤2作图。

主要仪 器设备 1、计算机1台,安装MATLAB软件 主要参 考文献 [美]数字信号处理——使用MATLAB[M].西安:西安交通大学出版社,2002. 课程设计进度计划(起止时间、工作内容) 本课程设计共安排6个题目,这是其中题目之一。整个课程设计共24学时,分1.5周安排,具体进度如下:
4学时 复习题目相关知识,掌握实现的原理;

12学时 用MATLAB语言实现题目要求;

4学时 进一步完善功能,现场检查、答辩;

4学时 完成课程设计报告。

课程设计开始日期 2011.12.26 课程设计完成日期 2012.1.6 课程设计实验室名称 信号与信息处理实验室 地 点 实验楼3-603、605 资料下载地址 目录 摘要 - 4 - 正文 - 4 - 一、目的 - 4 - 二、原理 - 4 - 三、要求 - 5 - 四、步骤 - 5 - 五、程序实现 - 6 - 实验结果 - 12 - 六、体会 - 15 - 参考文献 - 15 - 摘要 本文的目的是实现地震波观测系统的MATLAB仿真。一个线性系统y(t)=h(t)*x(t),x(t)为地面运动,h(t)为系统的冲击响应,y(t)为系统输出。根据卷积定理,有Y(ω)=H(ω)X(ω)。由地震波观测文件数据y(t),再设计一个宽频带滤波器h(t),就可以恢复地面运动x(t)。对于短周期地震仪,其系统函数为H1(w),对于输入地面运动x(t),有Y1(ω)=H1(ω)X(ω),我们可以推导出Y1(w)=H1(w)Y(w)/H(w),再对Y1(w)作ifft就可以实现宽频带仪器到短周期窄带仪器的仿真。同样,对长周期地震仪,其系统函数为H2(w),我们也可以得到Y2(w)=H1(w)Y(w)/H(w),然后对Y2(w)作ifft实现仿真。椭圆滤波器、巴特沃斯滤波器和切比雪夫滤波器的设计都很简单,只要滤波器的指标没问题,调用相应的函数就能实现。仿真的结果请参考本文的正文部分。

正文 一、目的 运用所学数字信号处理的基本知识,掌握地震波观测系统的数字信号处理方法。实现宽频带系统的输出仿真到窄频带输出及地面运动恢复。

二、原理 对于一个线性系统,可以用它的系统函数或脉冲响应来表示 y(t)=h(t)*x(t) ① 式中,x(t)为输入信号,相当于地震观测系统的地面运动;
y(t)为系统的输出,相当于地震观测系统的地震记录;
h(t)为系统的冲击响应。在频率域内,根据卷积定理,该式可以表示为 Y(ω)=H(ω)X(ω) ② 式中,H(ω)为系统的传递函数, X(ω)、 Y(ω)为x(t)、y(t)的傅里叶变换。

设想一个频带范围很宽的线性系统,如宽频带地震仪,其系统函数为H(ω);另一个频带较窄的系统,如短周期地震仪,其系统函数为H1(ω),对于同样的输入X(ω)有 Y(ω)=H(ω)X(ω), Y1(ω)=H1(ω)X(ω) ③ 式中,Y1(ω)为频带较窄的系统记录的频谱;
H1(ω为频带较窄系统的传递函数。由式③可得 H1(ω) Y(ω) Y1(ω)= H(ω) ④ 将上式变换到时间域就得到频带较窄系统的输出y1(t)。也就是说,如果知道宽频带和窄频带系统的传递函数H(ω)和 H1(ω),原则上可以从宽频带系统的输出推测出窄频带系统的输出。但如果我们知道窄频带系统输出及其两种系统的传递函数,却无法得到宽频带系统的输出。这样就使得我们在记录某种信号时采用宽频带记录,然后仿真到各种窄频带的记录仪器上对信号进行分析。

如果已知地震仪的输出和地震仪的传递函数,我们可以求出地面运动为 X(ω)= Y(ω)/ H(ω) ⑤ 三、要求 以某地震台站记录的地震观测文件为例,选择合适滤波器揭示地面运动恢复和仿真的概念 四、步骤 1、 读取地震波观测文件数据,做出时域、频域图形。设计一个包含所有频率成分的宽频带滤波器,假定为宽频带地震仪,恢复地面运动。绘出滤波器频率特性、地面运动时域图。

2、 已知短周期窄带仪器的阻带边界频率为[0.01 4.5]Hz,通带边界频率为[0.1 3.8]Hz,通带波纹为1dB,阻带衰减20dB;
将宽频带仪器的输出仿真到短周期窄带仪器上;
并与窄带仪器的输出进行比较(画图)。绘出窄带仪器的频谱图。长周期地震仪的窄带仪器用低通滤波器表示,其阻带边界频率为0.1Hz,通带边界频率为0.02Hz,通带波纹为1dB,阻带衰减为30dB,将宽频带仪器的输出仿真到长周期窄带仪器上;
并与窄带仪器的输出比较。同步骤2作图。

五、程序实现 close all,clear all,clc load hns.dat ; %读取数据序列 Xt=hns; %把数据赋值给变量 Fs=50; %设定采样率 单位(Hz) dt=1/Fs; %求采样间隔 单位(s) N=length(Xt); %得到序列的长度 t=[0:N-1]*dt; %时间序列 Yf=fft(Xt); %对信号进行快速Fourier变换(FFT) figure(1); subplot(2,1,1),plot([0:N-1]/Fs,Xt); %绘制原始值序列 xlabel('时间/s'),title('时间域'); grid on; subplot(2,1,2),plot([0:N-1]/N*Fs,abs(Yf));%绘制信号的振幅谱 xlabel('频率/Hz'),title('幅频图'); ylabel('振幅'); xlim([0 2]); %频率轴只画出2Hz频率之前的部分 grid on; %----------设计一个切比雪夫1型宽频带滤波器,假定为宽频带地震仪--------------- ws=[0.00001 25.0]*2/Fs; %阻带边界频率(归一化频率) wp=[0.001 25.0]*2/Fs; %通带边界频率(归一化频率) Rp=1;Rs=20;Nn=513; %通带波纹和阻带衰减以及绘制频率特性的数据点数 [Order,Wn]=cheb1ord(wp,ws,Rp,Rs);%求取数字滤波器的最小阶数和归一化截止频率 [b,a]=cheby1(Order,Rp,Wn); %按最小阶数、截止频率、通带波纹和阻带衰减设计滤波器 figure(2); [H,f]=freqz(b,a,Nn,Fs); %按传递函数系数、数据点数和采样频率求得滤波器的频率特性 y1=filtfilt(b,a,Xt); subplot(2,1,1),plot(f,20*log10(abs(H))); %画出宽带滤波器的幅频特性 xlabel('\lambda');ylabel('A(\lambda)/db'); title('宽频带滤波器幅频特性');grid on; subplot(2,1,2),plot(f,angle(H)) %画出宽带滤波器的相频特性 xlabel('频率/Hz');ylabel('相位/^o');title('宽频带滤波器相频特性');grid on; %已知宽频带地震仪的频率特性,恢复地面运动 [H,f]=freqz(b,a,N,Fs,'whole'); %得到地震仪的特性 Xf=zeros(1,N); for i=1:N if (H(i)>1.0e-4) Xf(i)=Yf(i)./H(i); %得到地面运动的频率域表示 end end figure(3); xt=real(ifft(Xf)); %得到地面运动 subplot(2,1,1); plot(t,xt,'r'); xlabel('时间/s'); ylabel('振幅'); title('地面运动时域图'); grid on; subplot(2,1,2); plot(t,Xt,'g'); xlabel('时间/s'); ylabel('振幅'); title('原始信号'); grid on; %设计一个椭圆宽带滤波器,假定为宽频带地震仪 ws=[0.00001 25.0]*2/Fs;wp=[0.001 25.0]*2/Fs; %通带和阻带边界频率(归一化频率) Rp=1;Rs=50;Nn=512; %通带波纹和阻带衰减以及绘制频率特性的数据点数 [Order,Wn]=ellipord(wp,ws,Rp,Rs); %求取数字滤波器的最小阶数和归一化截止频率 [b,a]=ellip(Order,Rp,Rs,Wn); %按最小阶数、截止频率、通带波纹和阻带衰减设计滤波器 figure(4) [H,f]=freqz(b,a,Nn,Fs); %按传递函数系数、数据点数和采样频率求得滤波器的频率特性 subplot(2,1,1),plot(f,20*log10(abs(H))) xlabel('频率/Hz');ylabel('振幅/dB');grid on; subplot(2,1,2),plot(f,180/pi*unwrap(angle(H))) xlabel('频率/Hz');ylabel('相位/^o');grid on; y=filtfilt(b,a,Xt); %在宽带滤波器上的输出 figure(5) subplot(2,1,1),plot(t,Xt) xlabel('时间/s'),title('输入信号'); ylabel('振幅'); grid on; subplot(2,1,2),plot(t,y) xlabel('时间/s'),title('椭圆宽带滤波器输出信号'); ylabel('振幅'); grid on; figure(6) subplot(2,1,1),plot(t,y1,'g'); xlabel('时间/s'),title('切比雪夫1型宽频带滤波器输出信号'); ylabel('振幅'); grid on; subplot(2,1,2),plot(t,y,'r') xlabel('时间/s'),title('椭圆宽带滤波器输出信号'); ylabel('振幅'); grid on; %--------仿真到长周期地震仪上,长周期地震仪用一个巴特沃思滤波器来表示---------- ws=0.1*2/Fs;wp=0.02*2/Fs; %通带和阻带边界频率(归一化频率) Rp=1;Rs=30;Nn=512; %通带波纹和阻带衰减以及绘制频率特性的数据点数 [Order,Wn]=buttord(wp,ws,Rp,Rs); %求取数字滤波器的最小阶数和归一化截止频率 [b,a]=butter(Order,Wn); %按最小阶数、截止频率、通带波纹和阻带衰减设计滤波器 figure(7); [H2,f]=freqz(b,a,Nn,Fs); %按传递函数系数、数据点数和采样频率求得滤波器的频率特性 subplot(2,1,1),plot(f,20*log10(abs(H2))); xlabel('\lambda');ylabel('A(\lambda)/db');title('长周期窄带滤波器幅频特性');grid on; subplot(2,1,2),plot(f,angle(H2)); xlabel('频率/Hz');ylabel('相位/^o');title('长周期窄带滤波器相频特性');grid on; figure(8); y2=filtfilt(b,a,Xt); %在窄带滤波器上的输出 [H2,f]=freqz(b,a,N,Fs,'whole'); %得到地震仪的特性 Yf2=zeros(1,N); for i=1:N if (abs(H2(i))>1.0e-4) %为了防止H值太小将该频率的信号放大 Yf2(i)=Yf(i).*H2(i)./H(i); %得到仿真结果 end end x2=ifft(Yf2); subplot(2,1,1); plot(t,y2,'g'); %绘制实际输出信号 xlabel('时间/s'); ylabel('振幅'); title('长周期地震仪实际输出'); grid on; subplot(2,1,2); plot(t,real(x2),'r'); %绘制仿真输出信号 title('长周期地震仪仿真输出'); xlabel('时间/s'); ylabel('振幅'); grid on; %仿真到长周期地震仪上,长周期地震仪用一个窄带椭圆滤波器来表示 ws=0.1*2/Fs;wp=0.02*2/Fs; %通带和阻带边界频率(归一化频率) Rp=1;Rs=30;Nn=512; %通带波纹和阻带衰减以及绘制频率特性的数据点数 [Order,Wn]=ellipord(wp,ws,Rp,Rs); %求取数字滤波器的最小阶数和归一化截止频率 [b,a]=ellip(Order,Rp,Rs,Wn); %按最小阶数、截止频率、通带波纹和阻带衰减设计滤波器 figure(9) y1=filtfilt(b,a,Xt); %在窄带滤波器上的输出 [H1,f]=freqz(b,a,N,Fs,'whole'); %得到地震仪的特性 XX1=zeros(1,N); for ii=1:N if (abs(H1(ii))>1.0e-4) %为了防止H值太小将该频率的信号放大 XX1(ii)=Yf(ii).*H1(ii)./H(ii); %得到仿真结果 end end x1=ifft(XX1); subplot(1,2,1); plot(t,y1); title('实际输出'); xlabel('时间/s'); ylabel('振幅'); grid on; subplot(1,2,2); plot(t,real(x1)); title('仿真输出'); xlabel('时间/s'); ylabel('振幅'); grid on; figure(10); subplot(2,1,1),plot(t,y2,'g'); xlabel('时间/s'),title('巴特沃思滤波器滤波器输出信号'); ylabel('振幅'); grid on; subplot(2,1,2),plot(t,y1,'r'); xlabel('时间/s'),title('椭圆宽带滤波器输出信号'); ylabel('振幅'); grid on; %仿真到短周期地震仪上,短周期地震仪用一个窄带椭圆滤波器来表示 ws=[0.01 4.5]*2/Fs;wp=[0.1 3.8]*2/Fs; %通带和阻带边界频率(归一化频率) Rp=1;Rs=20;Nn=512; %通带波纹和阻带衰减以及绘制频率特性的数据点数 [order,Wn]=ellipord(wp,ws,Rp,Rs); %求取数字滤波器的最小阶数和归一化截止频率 [b,a]=ellip(order,Rp,Rs,Wn); %按最小阶数、截止频率、通带波纹和阻带衰减设计滤波器 figure(11) [H1,f]=freqz(b,a,Nn,Fs); %按传递函数系数、数据点数和采样频率求得滤波器的频率特性 subplot(2,1,1),plot(f,20*log10(abs(H1))) xlabel('频率/Hz');ylabel('振幅/dB');grid on; subplot(2,1,2),plot(f,180/pi*unwrap(angle(H1))) xlabel('频率/Hz');ylabel('相位/^o');grid on; figure(12) y1=filtfilt(b,a,Xt); %在窄带滤波器上的输出 [H1,f]=freqz(b,a,N,Fs,'whole'); %得到地震仪的特性 XX1=zeros(1,N); for ii=1:N %得到仿真结果 if (abs(H1(ii))>1.0e-4) XX1(ii)=Yf(ii).*H1(ii)/H(ii); end end x1=ifft(XX1); plot(t,y1,t,real(x1),'r') %绘制输入信号 legend('实际输出','仿真输出',1) xlabel('时间/s'); ylabel('振幅'); grid on; %-------仿真到短周期地震仪上,短周期地震仪用一个切比雪夫2型滤波器来表示------ ws=[0.01 4.5]*2/Fs;wp=[0.1 3.8]*2/Fs; Rp=1;Rs=20;Nn=512; [Order,Wn]=cheb2ord(wp,ws,Rp,Rs);%求取数字滤波器的最小阶数和归一化截止频率 [b,a]=cheby2(Order,Rp,Wn);%按最小阶数、截止频率、通带波纹和阻带衰减设计滤波器 figure(13); [H,f]=freqz(b,a,Nn,Fs);%按传递函数系数、数据点数和采样频率求得滤波器的频率特性 y3=filtfilt(b,a,Xt); subplot(2,1,1),plot(f,20*log10(abs(H)));%画出宽带滤波器的幅频特性 xlabel('\lambda');ylabel('A(\lambda)/db'); title('宽频带滤波器幅频特性'); grid on; subplot(2,1,2),plot(f,angle(H)) %画出宽带滤波器的相频特性 xlabel('频率/Hz');ylabel('相位/^o'); title('宽频带滤波器相频特性'); grid on; figure(14); subplot(2,1,1),plot(t,y3,'g'); xlabel('时间/s'),title('切比雪夫2型滤波器滤波器输出信号'); ylabel('振幅'); grid on; subplot(2,1,2),plot(t,y1,'r'); xlabel('时间/s'),title('椭圆宽带滤波器输出信号'); ylabel('振幅'); grid on; close all,clear all,clc load hns1.dat ; %读取数据序列 Xt=hns1; %把数据赋值给变量 Fs=50; %设定采样率 单位(Hz) dt=1/Fs; %求采样间隔 单位(s) N=length(Xt); %得到序列的长度 t=[0:N-1]*dt; %时间序列 Yf=fft(Xt); %对信号进行快速Fourier变换(FFT) figure(1); subplot(2,1,1),plot([0:N-1]/Fs,Xt); %绘制原始值序列 title('P波'); xlabel('时间/s'),title('时间域'); title('P波'); grid on; subplot(2,1,2),plot([0:N-1]/N*Fs,abs(Yf)); %绘制信号的振幅谱 xlabel('频率/Hz'),title('幅频图'); ylabel('振幅'); xlim([0 2]); %频率轴只画出2Hz频率之前的部分 grid on; load hns2.dat ; %读取数据序列 Xt=hns2; %把数据赋值给变量 Fs=50; %设定采样率 单位(Hz) dt=1/Fs; %求采样间隔 单位(s) N=length(Xt); %得到序列的长度 t=[0:N-1]*dt; %时间序列 Yf=fft(Xt); %对信号进行快速Fourier变换(FFT) figure(2); subplot(2,1,1),plot([0:N-1]/Fs,Xt); %绘制原始值序列 title('S波'); xlabel('时间/s'),title('时间域'); title('S波'); grid on; subplot(2,1,2),plot([0:N-1]/N*Fs,abs(Yf)); %绘制信号的振幅谱 xlabel('频率/Hz'),title('幅频图'); ylabel('振幅'); xlim([0 2]); %频率轴只画出2Hz频率之前的部分 grid on; load hns3.dat ; %读取数据序列 Xt=hns3; %把数据赋值给变量 Fs=50; %设定采样率 单位(Hz) dt=1/Fs; %求采样间隔 单位(s) N=length(Xt); %得到序列的长度 t=[0:N-1]*dt; %时间序列 Yf=fft(Xt); %对信号进行快速Fourier变换(FFT) figure(3); subplot(2,1,1),plot([0:N-1]/Fs,Xt); %绘制原始值序列 title('面波'); xlabel('时间/s'),title('时间域'); title('面波'); grid on; subplot(2,1,2),plot([0:N-1]/N*Fs,abs(Yf));%绘制信号的振幅谱 xlabel('频率/Hz'),title('幅频图'); ylabel('振幅'); xlim([0 2]); %频率轴只画出2Hz频率之前的部分 grid on; 实验结果 图1 切比雪夫1型宽频带滤波器与椭圆宽带滤波器输出信号对比 地面运动时域与原始信号对比 图2 输入信号与输出信号 图3 宽频带振幅与相位 图4 短周期窄带振幅与相位 图5 实际输出与仿真输出对比 图6 巴特沃夫长周期实际输出与仿真输出对比 图7 地震波面波、P波、S波幅频图 图8 长周期窄带滤波器幅频特性 长周期窄带滤波器相频特性 六、实验体会 通过这次实验,我进一步复习了数字信号处理关于滤波器的基础,也了解了理论和实际的不同。在我们身边处处都能看到数字信号处理的相关知识的应用,从语音的识别采集处理到地震波观测,这直观的证实了数字信号处理这门课程的重要性。

在这次实验中,我们在实际操作中加强实践能力,巩固了数字信号处理理论知识,培养了我们解决实际问题的能力,在设计过程中,提高我们的思考能力、动手能力。让我们在学习理论知识的同时,明白如何把这些应用于实际。

这次的课程设计让我认识到了自己的不足,也认识到了我们学习的基础知识究竟能运用于什么领域,如何运用。在老师和同学的耐心指导下我发现了自己在选择巴特沃斯、切比雪夫滤波器上的问题,经过修改和调试,终于得到了应有的效果,这让我看到了理论与实践相结合的优势与用处,让我受益匪浅。

参考文献 [1]焦瑞莉 罗倩 汪毓铎 顾奕.数字信号处理[M].机械工艺出版社.pp:184-195 [2]http://lgb.ougz.com.cn/html/auto/old/protel99/yyong1.htm 袁宇波.用Matlab和Protel设计微机保护中Butterworth模拟低通滤波器 [3]曾庆禹.电力系统数字光电量测系统的原理及技术[J].电网技术.2001.25(4) pp:1-5

Tags: 地震波   观测   仿真  

搜索
网站分类
标签列表