1、直接对其使用ceil函数,可以向上取整:即大于等于给定数据的最小整数。
2、使用floor函数可以进行向下取整。如图,将矩阵A中的每个元素取小于等于该元素的最大整数。
3、使用fix函数则可以去除小数部分。对于大于0的元素相当于floor,对于小于0的元素相当于ceil。
4、使用round函数可以把数据四舍五入到最近的整数。
5、round还可以带有第二个参数,精确到位数。负数表示四舍五入到小数点左侧多少位,正数表示小数点右侧。0表示精确到个位,默认。
6、当round带有第三个参数'significant'时,第二个参数表示精确位数。如图表示每个元素均取2位有效数字。
如何画一个信号的频谱今天终于搞明白了,这么简单的东西今天才明白如何快速的用matlab画出,真是惭愧。光啃书本知识,会做题目真的是不够的,以后我要多多注意如何实践!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
比如
clear;
clc;
t=0:0.001:2;
n=2001;
Fs=1000;
Fc=200;
x=cos(2*pi*Fc*t);
y1=fft(x);
y2=fftshift(y1);
f=(0:2000)*Fs/n-Fs/2;
hold on;
plot(f,abs(y1),'r')
plot(f,abs(y2),'b')
这里需要在做了2001点FFT后将0到2000映射到真正的频谱-fs/2到+fs/2上才能成为真正的频谱
又如
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% .正弦波定义
f1=50; % 频率1
f2=100; % 频率2
fs=2*(f1+f2); % 采样频率
Ts=1/fs; % 采样间隔
N=120; % 采样点数
n=1:N;
y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts); % 正弦波混合
figure(1)
subplot(2,1,1)
plot(y);
title('Signal')
subplot(2,1,2)
f=(1:120)*fs/200-fs/2; %这里相当于做了120点FFT,需要把1:120映射到-fs/2到+fs/2
F=abs(fftshift(fft(y)));
stem(f,F);
title('Amplitude Spectrum')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
再比如:
clc;
clear all;
fs=500;
t=0:1/fs:1.5;
f1=40; f2=20;
x=sin(2*pi*t*f1)+sin(2*pi*t*f2); %input signal
figure(1);
plot(t,x);
title('input signal x[n]'); %input signal wave
figure(3);
f=(0:750)*fs/751-fs/2;
plot(f,abs(fftshift(fft(x)))); % plot input signal's frequency spectrum
title('frequency components of the input singal')
希望大家以后能快速的画出频谱!
http://bbs.matwav.com/viewthread.php?tid=482120
将那个i输出线分0一t支q出来输入i到一b个kto file的模块就好了d,如果要转到EXECL中2的话将他们链接就好
e┳