美文网首页matlab有趣的程序和命令
数字信号处理课设:matlab音频重低音处理

数字信号处理课设:matlab音频重低音处理

作者: 小Bill | 来源:发表于2019-06-21 21:53 被阅读0次

实验结果

重低音效果处理结果图:


实验要求

(1)利用 NI 公司的 myDAQ“书包实验室”硬件和 LabVIEW 软件平台,采集语音 信号或从网络上下载数字语音信号,得到一段语音数字信号; (2)设计适当的处理算法,对数字语音信号进行数字处理,已达到对语音信号进 行快速、慢速、倒序、拼接等回放的效果。采用 LabVIEW 或 MATLAB 软件平台处 理语音信号,并利用 myDAQ 的 D/A 模拟输出端口,外接音响设备验证处理结 果; (3)对语音信号进行数字低通和高通滤波处理,分别提取语音信号的低频和高频 分量。提出滤波器的设计指标,并设计数字低通和高通滤波器。采用 LabVIEW 或 MATLAB 软件平台,对语音信号分别进行低通、高通滤波和低音加重处理,并利用 myDAQ 的 D/A 模拟输出端口,外接音响设备验证处理后的低音、高音和重低音效 果。

实验分析

傅里叶变换fft函数那里纵坐标取值有些失真,有时间仔细研究fft函数,横坐标没问题。最后实现对高频低频的分开并且加重低频分量权重实现matlab重低音处理音频。

实验代码

clear all;close all;clc
[y,fs]=audioread('[SHANA]张学友 _ 梅艳芳 - 相爱很难 .wav');%声音
读取
% sound(y,fs); %声音回放 handles.y1=y;%y1 为原声
handles.Fs=fs;%采样频率 %
%时域波形图
ft=y(:,1);%读取一个声道的音频
len=length(y); t=(0:len-1)/fs;%时间序列
%原始信号时域图
figure(1);
plot(t,ft);
title('time');
xlabel('time(s)');
ylabel('amplitude');
%频域波形图
plen=len/32;%改成 1 就是整个图谱,这里只看前一部分
yf=fft(y,len);
yff=yf.*conj(yf)/len;
tf=(0:len-1)*fs/len;
figure(2);
plot(tf(1:plen),yff(1:plen));
title('fft');
xlabel('Hz');
ylabel('amplitude');
%
% %加速
% fs1=handles.Fs;
% Y1=handles.y1;

% % sound(Y1,2*fs1);
%
%
% %慢放
% fs2=handles.Fs;
% Y2=handles.y1;
% Y2=Y2(:,1);
% % sound(Y2,0.5*fs);
%
% % 倒放
% fs3=handles.Fs;
% y3=handles.y1;
% M=length(y3):-1:1;
% N = 1:1:length(y3);
% y4=y3(M);
% sound(y4,fs);%反播 %
% %拼接
% y5 = y(N)
% Z = [y4,y5]
% % sound(Z,fs);
%%低通滤波

wp = 2*pi*300,ws = 2*pi*400;Rp = 2;As = 30;
[N,wc] = cheb1ord(wp,ws,Rp,As,'s');%计算滤波器阶数N和3dB截止频
率
[B,A] = cheby1(N,Rp,wc,'s');%计算滤波器系统函数分子分母多项式系数
[Bz,Az] = impinvar(B,A,fs);%脉冲响应不变法,这里 fs 是个高能坑??? x=filter(Bz,Az,y);
% sound(x,fs) %时域波形图
ft=x(:,1);%读取一个声道的音频 len=length(x); t=(0:len-1)/fs;%时间序列
%原始信号时域图
figure(3);
plot(t,ft);
title('time');
xlabel('time(s)');
ylabel('amplitude');
%频域波形图
plen=len/32;%改成 1 就是整个图谱,这里只看前一部分 yf=fft(x,len);

yff=yf.*conj(yf)/len;
tf=(0:len-1)*fs/len;
figure(4);
plot(tf(1:plen),yff(1:plen));
title('fft');
xlabel('Hz');
ylabel('amplitude');
%高通滤波
wpz=300/2000;wsz=600/2000;Rp = 5;As = 30;
[Nd,wdc] = cheb1ord(wpz,wsz,Rp,As);%计算滤波器阶数N和3dB截止频 率
[BHz,AHz] = cheby1(Nd,Rp,wdc,'high');%计算滤波器系统函数分子分母 多项式系数
xx=filter(BHz,AHz,y);
% sound(xx,fs)
% 时域波形图
ft=xx(:,1);%读取一个声道的音频 len=length(xx); t=(0:len-1)/fs;%时间序列

% 原始信号时域图
figure(5);
plot(t,ft);
title('time');
xlabel('time(s)');
ylabel('amplitude');
% 频域波形图
plen=len/32;%改成 1 就是整个图谱,这里只看前一部分
yf=fft(xx,len);
yff=yf.*conj(yf)/len;
tf=(0:len-1)*fs/len;
figure(6);
plot(tf(1:plen),yff(1:plen));
title('fft');
xlabel('Hz');
ylabel('amplitude');
%%重低音效果
% xx=filter([1,-0.9575],1,x); %预加重滤波器
xxx = 5*x + y;%加个系数增益 % sound(xxx,fs)

%时域波形图
ft=xxx(:,1);%读取一个声道的音频 len=length(xxx); t=(0:len-1)/fs;%时间序列
%原始信号时域图
figure(7);
plot(t,ft);
title('time');
xlabel('time(s)');
ylabel('amplitude');
%频域波形图
plen=len/32;%改成 1 就是整个图谱,这里只看前一部分
yf=fft(xxx,len);
yff=yf.*conj(yf)/len;
tf=(0:len-1)*fs/len;
figure(8);
plot(tf(1:plen),yff(1:plen));
title('fft');
xlabel('Hz');
ylabel('amplitude');

相关文章

  • 数字信号处理课设:matlab音频重低音处理

    实验结果 重低音效果处理结果图: 实验要求 (1)利用 NI 公司的 myDAQ“书包实验室”硬件和 LabVIE...

  • matlab数字信号处理

    前言:这一篇是研究matlab数字信号处理(音频)的一个学习总结。在数学方面天赋有限,理解了一些,但是没有做到最后...

  • MATLAB 中进行音频处理

    今天又听到知了叫了,估计又得做实验了。 为了对音频信号进行分析,必须有一个好用的数字信号处理平台,MATLAB 挺...

  • DSP00 引言

    DSP00 引言 用于记录《数字信号处理》的相关知识。看情况加入一些matlab程序,图片。

  • 音视频入门-音频基础(一)

    音频处理流程 直播客户端的处理流程 音频数据的流转PCM:采集数据的格式就是PCM数据(模拟信号转换成数字信号) ...

  • matlab中fft函数易忽略的地方

    欢迎访问个人博客:blog.spursgo.com matlab中fft函数易忽略的地方 数字信号处理中快速傅里叶...

  • matlab音频信号处理

    首先来认识一下什么是音频信号 通过matlab我们可以直接读入一个音频文件,同时直接绘图但是此时的横坐标和纵坐标是...

  • 音频的基础知识

    采样和采样频率: 现在是数字时代,在音频处理时要先把音频的模拟信号变成数字信号,这叫A/D转换。要把音频的模拟信号...

  • 音视频开发入门扫盲篇

    音频的基础知识 1采样和采样频率: 现在是数字时代,在音频处理时要先把音频的模拟信号变成数字信号,这叫A/D转换。...

  • Matlab项目:【可视化】数字滤波器分析语音系统

    ->点击访问个人博客地址,相互交流学习<- 数字信号处理大作业:Matlab实现语音分析:加噪声,频谱分析,滤波器...

网友评论

    本文标题:数字信号处理课设:matlab音频重低音处理

    本文链接:https://www.haomeiwen.com/subject/nbcpqctx.html