文章目录
- 函数
- freqz函数(求出滤波器的幅值响应和相角响应)
- impz(产生滤波器的脉冲响应)
- grpdelay(求出群延迟响应)
- fvtool函数(显示滤波器的各种响应曲线)
- dfilt(离散时间滤波器)
- fir1(用窗函数法设计FIR滤波器)
- fir2(用频率采样法设计FIR滤波器)
- firpmord(计算等波纹FIR滤波器的阶数)
- firpm(等波纹FIR滤波器)
- 使用GUI设计滤波器后,导出matlab代码
- contour函数
- meshgrid函数
- pdf函数
- random函数
- 波形产生函数
- db2pow函数/db2mag函数/pow2db函数/mag2db函数
- axis tight
- 位操作函数
- typecast函数
- gtext函数
- fft函数(可以操作矩阵)
- filter函数(可以操作矩阵)
- mode求取众数
- exist检查变量、脚本、函数、文件夹或类的存在情况
- find查找特定元素的索引和值(能够指定所查找的符合条件的元素个数、查找方向)
- shiftdim(移动数组维度)
- sortrows(对矩阵行或表行进行排序)
- circshift(循环平移数组)
- flipud(将数组从上向下翻转)
- fliplr(将数组从左向右翻转)
- flip(翻转元素顺序)
- deg2rad/degtorad函数
- rad2deg/radtodeg函数
- sum函数(支持指定维数的求和运算、支持略去NaN)
- max函数(支持指定维数的运算、支持nanflag)
- min函数(与max函数类似)
- bsxfun函数(对两个矩阵A和B之间的每一个元素进行指定函数的计算,并且具有自动扩维的作用)
- semilogy函数(将y坐标轴用对数值表示出来)
- sfdr函数(计算无杂散动态范围)
- snr函数(计算信噪比)
- snr函数(计算信纳比->信号+噪声+谐波的功率与谐波+噪声的功率比值)
- thd函数(计算总谐波失真Total Harmonic Distortion)
- toi函数(计算三阶截断点 IP3: third-order intercept point)
- rms函数(计算均方根)
- 切换查看各级堆栈
- assignin函数(为工作空间的变量指派值)
- 输入输出参数相关函数(nargin、nargout、varargin、varargout等)
- fileparts(获取文件名的组成部分)
- fullfile(利用文件各部分信息创建合成完整文件名)
- isfolder、isfile函数(判断是否是文件夹、文件)
- 文件操作函数(movefile、copyfile、mkdir等)
- 特征值、特征向量计算(eig)
- funm函数(计算常规矩阵函数)
- mfilename(当前正在运行的代码的文件名)
- addParameter(在输入解析器模式中添加可选的名称-值对组参数)
- prod(计算数组元素的乘积)
- 使用assert断言函数
- cat(串联数组)
- buffer(将 向量信号 缓存为 帧信号 矩阵)
- cumsum(累计和)
- var函数
- pskmod
- rectpulse
- intdump
- able2array(将表转换为同构数组)
- type xxx.p(判断p文件的版本类型)
- movegui(将图窗移动到屏幕上的指定位置)
- 线性代数函数一览
- 其他
搬自Matlab的Help
函数
freqz函数(求出滤波器的幅值响应和相角响应)
clc;clear all;close all;
b=[1 -0.5];
a=[1];
[H,w]=freqz(b,a,200);
HF=abs(H); %求出幅频特性值
HX=angle(H); %求出相频特性值
subplot(2,1,1);plot(w,HF); %画出幅频特性曲线
subplot(2,1,2);plot(w,HX); %画出相频特性曲线
b = [1 0 0 0 1];
a = [1];
f = 0:100:10000;
FS = 5000;
figure;freqz(b,a,f,FS)
impz(产生滤波器的脉冲响应)
% All frequency values are in Hz.
Fs = 48000; % Sampling Frequency
Fpass = 9600; % Passband Frequency
Fstop = 12000; % Stopband Frequency
Dpass = 0.057501127785; % Passband Ripple
Dstop = 0.0001; % Stopband Attenuation
dens = 20; % Density Factor
% Calculate the order from the parameters using FIRPMORD.
[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
b = firpm(N, Fo, Ao, W, {dens});
figure;freqz(b);
figure;impz(b);
grpdelay(求出群延迟响应)
fvtool函数(显示滤波器的各种响应曲线)
% All frequency values are in Hz.
Fs = 48000; % Sampling Frequency
Fpass = 9600; % Passband Frequency
Fstop = 12000; % Stopband Frequency
Dpass = 0.057501127785; % Passband Ripple
Dstop = 0.0001; % Stopband Attenuation
dens = 20; % Density Factor
% Calculate the order from the parameters using FIRPMORD.
[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
b = firpm(N, Fo, Ao, W, {dens});
fvtool(b);
dfilt(离散时间滤波器)
fir1(用窗函数法设计FIR滤波器)
fir2(用频率采样法设计FIR滤波器)
firpmord(计算等波纹FIR滤波器的阶数)
firpm(等波纹FIR滤波器)
rp = 3; % Passband ripple
rs = 40; % Stopband ripple
fs = 2000; % Sampling frequency
f = [500 600]; % Cutoff frequencies
a = [1 0]; % Desired amplitudes
dev = [(10^(rp/20)-1)/(10^(rp/20)+1) 10^(-rs/20)];
[n,fo,ao,w] = firpmord(f,a,dev,fs);
b = firpm(n,fo,ao,w);
freqz(b,1,1024,fs)
title('Lowpass Filter Designed to Specifications')
Fs = 48000; % Sampling Frequency
使用GUI设计滤波器后,导出matlab代码
Fs = 48000; % Sampling Frequency
Fpass = 9600; % Passband Frequency
Fstop = 12000; % Stopband Frequency
Dpass = 0.057501127785; % Passband Ripple
Dstop = 0.0001; % Stopband Attenuation
dens = 20; % Density Factor
% Calculate the order from the parameters using FIRPMORD.
[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
% Calculate the coefficients using the FIRPM function.
b = firpm(N, Fo, Ao, W, {dens});
Hd = dfilt.dffir(b);
% [EOF]
contour函数
meshgrid函数
用来生成网格矩阵
pdf函数
pdf函数封装了众多类型的概率密度函数,参数如下,
xg = linspace(-6,6,1500); % randowm variable between -6 and 6
xr = linspace(0,6,1500); % randowm variable between 0 and 6
mu = 0; % zero mean Gaussain pdf mean
sigma = 1.5; % standard deviation (sqrt(variance)
ynorm = normpdf(xg,mu,sigma); % use MATLAB funtion normpdf
yray = raylpdf(xr,sigma); % use MATLAB function raylpdf
y_normal = pdf('normal',xg,mu,sigma);
y_ray = pdf('rayleigh',xr,sigma); % use MATLAB function raylpdf
plot(xg,ynorm,'k',xr,yray,'k-.',xg,y_normal,'b*',xr,y_ray,'r*');
grid
legend('Gaussian pdf','Rayleigh pdf')
xlabel('x')
ylabel('Probability density')
% gtext('\mu = 0; \sigma = 1.5')
% gtext('\sigma =1.5')
random函数
random函数封装了众多类型的随机数函数,参数如下,
波形产生函数
db2pow函数/db2mag函数/pow2db函数/mag2db函数
各个函数用法类似,仅贴一图,
axis tight
位操作函数
typecast函数
gtext函数
fft函数(可以操作矩阵)
filter函数(可以操作矩阵)
mode求取众数
exist检查变量、脚本、函数、文件夹或类的存在情况
find查找特定元素的索引和值(能够指定所查找的符合条件的元素个数、查找方向)
shiftdim(移动数组维度)
sortrows(对矩阵行或表行进行排序)
circshift(循环平移数组)
flipud(将数组从上向下翻转)
fliplr(将数组从左向右翻转)
flip(翻转元素顺序)
deg2rad/degtorad函数
rad2deg/radtodeg函数
sum函数(支持指定维数的求和运算、支持略去NaN)
max函数(支持指定维数的运算、支持nanflag)
min函数(与max函数类似)
bsxfun函数(对两个矩阵A和B之间的每一个元素进行指定函数的计算,并且具有自动扩维的作用)
两个非“单一维度”相互匹配的数组a和b做函数fun运算时,bsxfun会隐含扩充a或b使得a和b结构相同,以便实现逐元素运算。其中,fun可以是函数句柄或者m文件,也可以是内置函数。
当然,现在matlab也已经很强大了,可以直接进行维数不同的向量的运算,
semilogy函数(将y坐标轴用对数值表示出来)
clc;close all;clear all;
N = 1024;
FS = 1000;
t = (0:N-1)/FS;
f = 100;
sig = cos(2*pi*f*t);
y_fft = abs(fft(sig));
figure;
subplot(131);
plot(y_fft);
title('常规画图');
subplot(132);
plot(y_fft);
semilogy(y_fft);
title('绘图之后对坐标轴log10,变换了值域的表示方式');
subplot(133);
plot(log10(y_fft));
title('绘图之前对数据取log10,变换了值域');
sfdr函数(计算无杂散动态范围)
snr函数(计算信噪比)
snr函数(计算信纳比->信号+噪声+谐波的功率与谐波+噪声的功率比值)
thd函数(计算总谐波失真Total Harmonic Distortion)
toi函数(计算三阶截断点 IP3: third-order intercept point)
clc;close all;clear all;
N = 1024;
FS = 1000;
t = (0:N-1)/FS;
f = 100;
sig = cos(2*pi*f*t);
sig_with_noise = awgn(sig,10,'measured');
figure;
snr(sig_with_noise)
figure;
sfdr(sig_with_noise)
figure;
sinad(sig_with_noise)
figure;
thd(sig_with_noise)
rms函数(计算均方根)
切换查看各级堆栈
assignin函数(为工作空间的变量指派值)
MATLAB通常的基本工作空间是’base’空间。MATLAB在程序运行过程中,将为每个函数分配它自己的函数工作空间(从基本空间中分割出的一块, 以函数名作为其工作空间名),各个工作空间之间的变量是不能够直接引用的,在函数退出之后,该函数空间也就立即被注销。因此,对于函数文件,运行结果除输出变量返回到基本工作空间或者其父工作空间(调用该函数的程序的工作空间)之外,其他中间变量不在基本工作空间或者其父工作空间保留。而对于脚本M文件,其工作空间与基本工作空间’base’是共享的,其运算过程中所用到的中间变量也将在基本工作空间’base’中保留。
输入输出参数相关函数(nargin、nargout、varargin、varargout等)
fileparts(获取文件名的组成部分)
fullfile(利用文件各部分信息创建合成完整文件名)
isfolder、isfile函数(判断是否是文件夹、文件)
文件操作函数(movefile、copyfile、mkdir等)
特征值、特征向量计算(eig)
funm函数(计算常规矩阵函数)
mfilename(当前正在运行的代码的文件名)
addParameter(在输入解析器模式中添加可选的名称-值对组参数)
prod(计算数组元素的乘积)
使用assert断言函数
assert(isequal(1,2),'测试条件不满足');
assert(isequal(2,2));
cat(串联数组)
buffer(将 向量信号 缓存为 帧信号 矩阵)
cumsum(累计和)
var函数
clc;clearvars;close all;
t = 0:0.001:10;
x = sin(2*pi*t);
px = norm(x).^2/length(x); %计算信号x的功率
ratio=20;
pn = px./(10.^(ratio./10)); %根据snr计算噪声功率
n = sqrt(pn)*randn(1,length(x));
y = x+n;
subplot(2,1,1);plot(t,x);title("正弦信号x")
subplot(2,1,2);plot(t,y);title("叠加了高斯白噪声后的正弦信号")
var(x)
var(n)
pskmod
rectpulse
intdump
able2array(将表转换为同构数组)
type xxx.p(判断p文件的版本类型)
type xxx.p
如果返回值是"v01.00v00.00",则该p文件是使用R2007b或以后的版本创建的,否则是之前的版本创建的,返回值是"v00.00v00.00"。
movegui(将图窗移动到屏幕上的指定位置)
线性代数函数一览
其他
区域注释
为函数添加help说明
为figure设置name
global(全局变量)
局部函数(Local Functions)
嵌套函数(Nested Functions)
匿名函数(Anonymous Functions)
输出结果显示为分数形式
format rat