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./(K
abs(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谐波失真仿真到C语言谐波失真应用

谐波乘积谱的 MATLAB 代码

电能仿真基于matlab电能质量谐波波形仿真含Matlab源码 2263期

湍流基于matlab kolmogorov结合次谐波补偿大气湍流相位屏含Matlab源码 2178期

Matlab学习(用matlab进行fft谐波分析)