9299.net
大学生考试网 让学习变简单
当前位置:首页 >> >>

数字信号处理Matlab仿真实验

数字信号处理Matlab仿真实验

实验一
一、实验要求: IIR 数字滤波器的设计和实现 DTMF 信号的编码: 把你的联系电话号码 DTMF 编码生成为一个 .wav 文件。 技术指标: 根据 ITU Q.23 建议,DTMF 信号的技术指标是:传送/接收率为每秒 10 个号码, 或每个号码 100ms。每个号码传送过程中,信号存在时间至少 45ms,且不多于 55ms, 100ms 的其余时间是静音。 在每个频率点上允许有不超过 ±1.5% 的频率误差。 任何超 过给定频率 ±3.5% 的信号,均被认为是无效的,拒绝接收。 二、实验代码 d=input('please enter number: ','s'); sum=length(d); total_x=[]; sum_x=[]; sum_x=[sum_x,zeros(1,800)]; for a=1:sum symbol=abs(d(a)); tm=[49,50,51,65;52,53,54,66;55,56,57,67;42,48,35,68]; for p=1:4; for q=1:4; if tm(p,q)==abs(d(a)); break,end end if tm(p,q)==abs(d(a)); break,end end f1=[697,770,852,941]; f2=[1209,1336,1477,1633]; n=1:400; x=sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000); x=[x,zeros(1,400)]; sum_x=sum_x+x; total_x=[total_x x]; end sound(total_x); t=total_x/2; % 输入电话号码

%循环 sum 次 % 求输入的 ASCII 码 % DTMF 表中键的 % 16 个 ASCII 码

% 检测码相符的列号 q % 检测码相符的行号 p % 行频率向量 % 列频率向量 % 构成双频信号 %加长序列,增加静音 %将所有编码连接起来 % 播放声音

wavwrite(t,'我的手机号码'); plot(total_x); title('DTMF 信号 时域波形'); % 接收检测端的程序 k1 = [18 20 22 24 31 34 38 42]; %k2 = [35 39 43 47 61 67 74 82]; kx=k1+1; %ky=k2+1; N=205; SK=[]; out=[]; for a=1:sum m=800*(a-1); X=goertzel(total_x(m+1:m+N),kx); val = abs(X); SK=[SK;val]; limit = 80; for s=5:8; if SK(a,s) > limit, break, end end for r=1:4; if SK(a,r) > limit, break, end end end

%生成声音文件

% 要求的 DFT 样本序号 % 要求的 DFT 样本序号

% 用 Goertzel 算法

% 判决门限 % 查找列号

% 查找行号

三、实验结果

生成声音文件“我的手机号码” 。

实验二
一、实验要求 FIR 数字滤波器的设计和实现 录制自己的一段声音,长度为 45 秒,取样频率 32kHz,然后叠加一个高斯白噪声, 使得信噪比为 20dB。请采用窗口法设计一个 FIR 带通滤波器,滤波噪声提高质量。请随实 验报告同时提交原始加噪和滤波后的声音文件(.mp3 格式) 。

提示: 1.滤波器指标参考: 通带边缘频率为 4kHz, 阻带边缘频率为 4.5kHz, 阻带衰减大于 50dB; 2.Matlab 函数 y = awgn(x,snr,'measured') ,首先测量输入信号 x 的功率,然后对其 叠加高斯白噪声;

二、实验程序
Fs=32000; a = wavrecord(45*Fs,Fs,'double'); a1 = awgn(a,20,'measured'); %窗函数的设计 fp=4000; fs=4500; detaomega=2*pi*(fs-fp)/Fs; wc=2*pi*(fs+fp)/(2*Fs); N=ceil(6.6*pi/detaomega)+1; wp=2*pi*fp/Fs; ws=2*pi*fs/Fs; h = fir1(N,wc/pi); freqz(h); %使用窗函数 out=filter(h,1,a1); %生成声音文件 bits=16; wavwrite(a,Fs,bits,'D:\mat\11.wav'); wavwrite(a1,Fs,bits,'D:\mat\22.wav'); %播放声音文件 wavplay(a1,Fs); wavplay(out,Fs);

三、实验结果 在指定文件夹里生成两个 wav 文件,并运行它们。


网站首页 | 网站地图 | 学霸百科 | 新词新语
All rights reserved Powered by 大学生考试网
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com