如何在vc++中调用整个matlab文件
我在网上找到一个vc调用由matlab编写的加法函数的实例。可是,我做的是语音信号处理,程序里包含的函数较多,所以想请教一下,有没有可以直接调用整个matlab文件类似打包那样的方法呢?
我的程序如下:文件a5.m
x1=wavread('D:\毕设zj-勿删\REC02.wav'); %读出波形
wp=0.25*pi; %通带边缘频率
ws=0.3*pi; %阻带边缘频率
Rp=1; %通带最大衰减
As=15; %阻带最大衰减
Fs=8000; %采样频率
Ts=1/Fs;
Wp=2/Ts*tan(wp/2); %将模拟指标转换成数字指标
Ws=2/Ts*tan(ws/2);
=buttord(Wp,Ws,Rp,As,'s');%选择滤波器的最小阶数
=buttap(N); %创建butterworth模拟滤波器
=zp2tf(Z,P,K);
=lp2lp(Bap,Aap,Wc);
=bilinear(ba,aa,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的
转换
=freqz(bd,ad); %绘制频率响应曲线
figure(1)
plot(W*Fs/(2*pi),abs(H))
grid % ???????
xlabel('频率/Hz')
ylabel('频率响应幅度')
title('Butterworth')
f1=filter(bz,az,x1);
figure(2)
subplot(2,1,1)
plot(t,x1) %画出滤波前的时域图
title('滤波前的时域波形');
subplot(2,1,2)
plot(t,f1); %画出滤波后的时域图
title('滤波后的时域波形');
sound(f1,8000); %播放滤波后的信号
F=fft(f1,256);
f=fs*(0:127)/256;
figure(3)
y2=fft(x1,256);
subplot(2,1,1);
plot(f,abs(y2(1:128))); %画出滤波前的频谱图
title('滤波前的频谱')
xlabel('Hz');
ylabel('幅值'');
subplot(2,1,2)
plot(f,abs(F(1:128))); %画出滤波后的频谱图
title('滤波后的频谱')
xlabel('Hz');
ylabel('幅值');
希望高手能够不惜指教。
感激不尽!!!
谢谢!!
页:
[1]