信号处理实验

1. 自行录制一段语音信号,对采集的语音信号进行重新采样(增加或降低采样频率),比较重新采样前后声音的变化,结合采样定理做出解释。对录制的语音信号进行处理和分析,画出采样后信号的时域波形图;对其进行快速傅里叶变换,画出语音信号的频谱图;

2. 设计一个巴特沃斯低通数字滤波器,其3dB带宽为,阻带边缘频率范围为,阻带衰减大于30dB,给定采样间隔为,用双线性变换法设计该低通数字滤波器,给出它的及对数幅频响应。

实验二实验内容利用Matlab 和Simulink仿真实现。

[y,fs]=audioread('F:yuyin\radio.m4a');  % 读取语音文件,fs默认48000

figure(1);
subplot(3,1,1); % 原始语音信号的时域波形图
plot(y);
title('原始语音信号的时域波形');
xlabel('时间');
ylabel('幅值A');
% 原始语音信号经2倍采样率后的的时域波形图
p=2;q=1;
y2=resample(y,p,q);
y2max=max(abs(y2));
y2=y2/y2max;
fs2=fs*p/q;
t1=(1:length(y2))/fs2;
subplot(3,1,2); 
plot(t1,y2);
title('2倍采样率原始语音信号的时域波形');
xlabel('时间');
ylabel('幅值A');

% 原始语音信号经0.5倍采样率后的的时域波形图
p=1;q=2;
y2=resample(y,p,q);
y2max=max(abs(y2));
y2=y2/y2max;
fs2=fs*p/q;
t1=(1:length(y2))/fs2;
subplot(3,1,3); 
plot(t1,y2);
title('2倍采样率原始语音信号的时域波形');
xlabel('时间');
ylabel('幅值A');



figure(2);
subplot(2,1,1); 
n=length(y);% 原始语音信号的频谱图
y_p=fft(y,fs);
f=fs*(0:n/2-1)/n;
plot(f,abs(y_p(1:n/2)));
title('原始语音信号的幅频图');
xlabel('频率Hz');
ylabel('幅频');
subplot(2,1,2); 
plot(f,angle(y_p(1:n/2)));
title('原始语音信号的相频图');
xlabel('频率Hz');
ylabel('相频');

sound(y,fs)      % 回放语音信号,将语音信号矩阵转换成声音
pause(3);
sound(y,0.5*fs)
pause(9);
sound(y,2*fs)
pause(3);

信号处理实验_第1张图片

信号处理实验_第2张图片

%通过模拟滤波器设计IIR数字滤波器
%原型:巴特沃斯模拟滤波器;变换方法:双线性映射法
%通带截止频率:fp(单位Hz)
%通带衰减:Rp(单位dB)
%阻带截止频率:fs(单位Hz)
%阻带衰减:Rs(单位dB)
%采样频率:Fs(单位Hz)
 
%技术指标要求设置,按自己需求更改即可
% fp=1000;fs=2000;%低通示例
% fp=2000;fs=1000;%高通示例
%fp=[500,1200];fs=[300,1500];%带通示例
%fp=[300,1500];fs=[500,1200];%带阻示例
Rp=3;Rs=30; 
Fs=100000;%采样频率
filter_type=1;%1:低通,2:高通,3:带通,4:带阻
 
% wp=2*pi*fp/Fs; ws=2*pi*fs/Fs; %转换为数字角频率技术指标
wp=0.2*pi; ws=0.5*pi; %转换为数字角频率技术指标
Wp=(2*Fs)*tan(wp/2);Ws =(2*Fs)*tan(ws/2); %将数字技术指标的反畸变为模拟指标
%滤波器的阶数:N
%3dB衰减时的截止频率:Wc(单位rad/s)
%b:系统函数的分子
%a:系统函数的分母
[N,Wc]=buttord(Wp,Ws,Rp,Rs,'s');%计算巴特沃斯模拟滤波器参数,‘s’表示Wp和Ws都是模拟角频率
switch filter_type
    case 1
        [b,a]=butter(N,Wc,'low','s');%设计巴特沃斯低通滤波器
    case 2
        [b,a]=butter(N,Wc,'high','s');%设计巴特沃斯高通滤波器
    case 3
        [b,a]=butter(N,Wc,'bandpass','s');%设计巴特沃斯带通滤波器
    case 4
        [b,a]=butter(N,Wc,'stop','s');%设计巴特沃斯带阻滤波器
end
[B,A]=bilinear(b,a,Fs);%冲激响应不变法
% fprintf('H(z)分子多项式系数:%f\n',B);
% fprintf('H(z)分母多项式系数:%f\n',A);
disp(B);
disp(A);
[H,W]=freqz(B,A);%数字滤波器系统函数
mag=abs(H);%幅度
pha=angle(H);%相位
db=20*log10((mag+eps)/max(mag));%转换为分贝
f=W*Fs/(2*pi);%将数字角频率转为Hz
subplot(2,1,1);plot(f,db);grid on;
title('双线性变换法设计数字滤波器幅频曲线');xlabel('频率(Hz)');ylabel('幅度(dB)');
subplot(2,1,2);plot(f,pha);grid on;
title('双线性变换法设计数字滤波器相频曲线');xlabel('频率(Hz)');ylabel('相位(rad)');

信号处理实验_第3张图片 

 

 

你可能感兴趣的:(信号处理,信号处理,matlab,语音识别)