最近电赛培训需要对方波进行傅里叶变换求谐波频率及幅度,因为各种误差需要对单片机得到的结果再乘以一个系数来补偿,所以需要matlab来模拟生成方波看不同输入幅值时准确的谐波幅度,得到的结果却一直都不对
问题:频率为1kHz的方波,用8kHz采样,画出图像不是50%方波
错误做法:
Fs=8000;%采样频率
N=1024; %采样点数
n=0:N-1;
t=0:N-1;
k=1;%调整方波幅度
x=0.5*k+0.5*k*square(2*pi*1000*t/Fs,50); %注意不能是1000
subplot(2,1,1)
stem(t,x);
axis([0 50 -inf inf]);
xfft=fft(x,N);
subplot(2,1,2)
f=n*Fs/N; %转换位频率
Amp=abs(xfft)*2/N;
stem(f,Amp);
可以看到上图的时域和频域图像都正确,没有生成50%占空比的方波。如图所示,虚线部分就是不确定的状态,可能为上面也可能为下面,所以就导致了上述结果
解决:信号频率改为1000.1即可
Fs=8000;%采样频率
N=1024; %采样点数
n=0:N-1;
t=0:N-1;
k=1;%调整方波幅度
x=0.5*k+0.5*k*square(2*pi*1000.1*t/Fs,50); %注意不能是1000
subplot(2,1,1)
stem(t,x);
axis([0 50 -inf inf]);
xfft=fft(x,N);
subplot(2,1,2)
f=n*Fs/N; %转换位频率
Amp=abs(xfft)*2/N;
stem(f,Amp);
最近电赛培训需要对方波进行傅里叶变换求谐波频率及幅度,因为各种误差需要对单片机得到的结果再乘以一个系数来补偿,所以需要matlab来模拟生成方波看不同输入幅值时准确的谐波幅度,得到的结果却一直都不对问题:频率为1kHz的方波,用8kHz采样,画出图像不是50%方波错误做法:clc;Fs=8000;%采样频率N=1024; %采样点数n=0:N-1;t=0:N-1; k=1;%调整方波幅度x=0.5*k+0.5*k*square(2*pi*1000*t/Fs,50); %注意不能
squa
re(T)
函数
产生
一个2*pi为周期的
方波
,范围在-1到1之间,占空比为
50
%。很像sin
函数
,比如sin
函数
输入pi/6 就是1/2,输入pi/2 就是1,输入pi就是0,输入3/2*pi就是-1;而
squa
re也是一样,输入的数小于pi,就是1,大于pi小于2*pi就是-1。
squa
re(T, duty), duty是一个百分数,duty = 75(75%的占空比)。如图第一
t = linspace(-2*pi,2*pi,1
50
);%1
50
是从-2π到2π取1
50
个点,可取其他数字,不写默认为100
x =
squa
re(2*t);%数字2可改变
方波
的周期。另外可
squa
re(2*t,75)改变
方波
占空比,使得
方波
正的部分的占空比为75%
plot(t/pi,x)
grid on
t的区间内取点个数越大
方波
越正,默认为100的时候有点斜。
t = linspace(-2*pi,2*
信号
处理的宗旨是将
信号
中蕴含的信息变得显然,其中的转变就包括映射(mapping)和变换(transform)。常见的就是时域和频域的转变,时域表示
信号
时时间的
函数
,时间维度表征
信号
;频域通常包含傅里叶变换,频率维度表征
信号
。
一. 生成
方波
以及仿真不同的周期
MATLAB
代码:
运行结果:
对结果的解释:
t在取点时,个数越多
方波
越正
squa
re
函数
内,系数变大,周期变小
二.
方波
的频谱与谱线
MATLAB
代码:
运行结果:
对结果的解释:系数越大,周期越小,频谱分.
可以使用
MATLAB
中的 `
squa
re`
函数
来生成
方波
信号
。这个
函数
的第一个参数是
信号
的频率,第二个参数是占空比,取值范围为 0 到 100。因此,您可以使用以下代码生成频率为
50
Hz,占空比为
50
% 的
方波
信号
:
```
matlab
f =
50
; % 频率为
50
Hz
duty =
50
; % 占空比为
50
%
t = 0:1/(10*f):1/f; % 采样时间点
y =
squa
re(2*pi*f*t, duty); % 生成
方波
信号
plot(t, y); % 绘制
信号
图形
xlabel('Time (s)');
ylabel('Amplitude');
title('
50
Hz
Squa
re Wave with
50
% Duty Cycle');
这段代码会生成一个时间长度为 1 秒的
方波
信号
,并将其绘制出来。您可以根据需要修改采样时间点的间隔,以获得所需的时间分辨率。