matlab谐波生成方法
Posted zyy-summary
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab谐波生成方法相关的知识,希望对你有一定的参考价值。
谐波的具体生成方法参看论文
Harmonic and Intermodulation Analysis of Nonlinear Devices Used in Virtual Bass Systems
具体的matlab代码为
function Ha = calculate_harmonics()
[d , sr] = wavread(‘110hz.wav‘);
% full-wave rectifier NLD transfer function , y = |x|
y = abs(d);
% 论文中的公式
y_poly = 1.307 * d.^6 - 2.6593 * d.^4 + 2.2781 * d.^2 + 0.0838;
% soft clipping y = x/(K|x|+1),K=1
K = 1;
y_soft = d./(Kabs(d)+1);
function my_plot(data)
N = length(data);
xdft = fft(data);
xdft = xdft(1:N/2+1);
freq = 0:sr/N:sr/2;
plot(freq, (2/N)*abs(xdft))
end
subplot(411)
my_plot(d)
subplot(412)
my_plot(y)
subplot(413)
my_plot(y_poly)
subplot(414)
my_plot(y_soft)
end
测试结果为
以上是关于matlab谐波生成方法的主要内容,如果未能解决你的问题,请参考以下文章
电能仿真基于matlab电能质量谐波波形仿真含Matlab源码 2263期