【MATLAB】画信号频谱的子函数

输入信号序列和采样率,该子函数可以画出该信号的频谱图。

function [f,spec,NFFT]=spec_fft_plot(sample,L,Fs)
% 输入数据说明:
% sample:信号序列;
% L:信号序列的长度;
% Fs:该信号的采样频率。
% 输出数据说明:
% f:频率;
% spec:频谱图纵坐标;
NFFT = 2^nextpow2(L);
% NFFT = L;
spec=abs(fft(sample,NFFT)./L);
flag = 1;
if flag ==1
    f = Fs/2*linspace(0,1,NFFT/2+1);
    spec=spec(1:length(f));
else
    f = Fs/2*linspace(-1,1,NFFT);
    spec = fftshift(spec);
end

  

时间: 2024-10-10 09:09:30

【MATLAB】画信号频谱的子函数的相关文章

MATLAB 嵌套函数,子函数,私有函数,重载函数

MATLAB 函数嵌套 MATLAB中M文件有两种类型,脚本M文件和函数M文件.脚本M文件是将可执行程序语句放入M文件中,就像在命令窗口那样,按其语句顺序及逻辑关系执行,可以理解为一般的顺序执行程序语句.函数文件一般是声明一个函数,方便以后操作中的调用.下面就函数文件中函数嵌套的使用做简单分析. 对于函数文件,一个M文件只能定义一个总函数,即第一句function所定义的函数,而且整个M文件在外部使用时候表现出来的也只有这一个函数.如果需要多个函数嵌套,与其定义顺序无关.下面结合一个简单的例子来

matlab中同一文件定义子函数的方法

在matlab中一个.m文件中可以有多个的子函数,但仅能有一个主函数,并且M文件名必须和主函数相同在一个m文件中通常有两种定义子函数的方法: 1.嵌套定义 myfunc1会和主函数共享变量名.这种情况下,使用相同的变量名,如果不是故意为之,就不合适了.function mainFunc(... a = myfunc1();...function myfunc1()...end end2. 非嵌套定义function mainFunc()...a = myfunc1();...end functi

matlab调试时子函数断点不起作用

matlab调试代码时总是遇到这样一个奇怪的问题,就是当我在主程序(.m脚本)中调用子函数并在子函数中设置断点,然后开始调试运行主程序... 发现主程序直接运行到结束而并没有在调用子函数的时候在所设置的断点处停下来,而且所设置的断点也被清除... 但是如果在主程序中调用相应子函数的地方设置断点,调试时在此处停一下然后在继续运行则可以在子函数中的断点停下... 这个问题困扰我挺长时间,虽然用第二种方法能够实现需要的调试功能,但是总是要在主程序停一下,有点麻烦 so, 有事问谷歌--you get

matlab画图形函数 semilogx

matlab画图形函数 semilogx loglog 主要是学习semilogx函数,其中常用的是semilogy函数,即后标为x的是在x轴取对数,为y的是y轴坐标取对数.loglog是x y轴都取对数. 例子, clc;clear;close all;x = 0:.1:10;y = 2*x+3;subplot(211);plot(x,y);grid onsubplot(212);semilogy(x,y);grid on 结果 —————————复习各种matlab图形函数—————————

matlab画圆

首先介绍一下rectangle函数 1.rectangle函数实际上是一个画矩形的行数,语法调用为: rectangle('Position',[x,y,w,h]),表示的是下哦那个点(x,y)开始画一个宽w高h的矩形.默认情况下是从(0,0)开始画一个宽1高1的矩形.例如直接在命令窗口出入:rectangle,axis equal  画出的图形如下图所示.(axis equal的意思是保持横纵坐标等比例) 2. rectangle函数可以制定矩形边的曲率,这就为我们画圆提供了一个思路.改变曲率

匿名函数,子函数,私有函数,重载函数,eval和feval函数

匿名函数,子函数,私有函数等函数类型 匿名函数: 匿名函数没有函数名,也不是.m文件,只包含一个表达式和输入输出参数. [email protected](x,y)x.^y+3*x*y x,y为输入输入参数,Fxy为函数名 子函数: 在 Matlab中, 多个函数写入一个.m文件中.其中出现的第一个函数称为主函数,其他函数称为子函数,保存时文件名与主函数名相同,外部程序只能调用主函数. 特点: 子函数只能被同一文件下的其他函数调用 通过名称调用函数时优先调用子函数,再调用内置函数. 同一文件的主

信号(三)---早期signal函数和现代signal函数的一些对比

使用signal函数的一些缺点: 由于signal函数调用成功时会返回原来信号处理程序的指针,所以如果我想要利用signal函数来获取原先信号处理程序的指针的话,必须要先去改变其信号处理方式.如下图所示 在早期的signal函数的实现中,使用signal函数安装的信号处理函数只能使用一次:在第一次捕捉到该信号的时候,就去执行安装的信号处理函数,同时内核会将该信号的信号处理方式修改为默认方式.下次进程再次收到这个信号的时候,进程将会执行信号的默认动作.但是现在的signal函数的实现并不是这样的,

tcl脚本学习十:proc 子函数的使用

lesson 10 :proc 子函数的使用 1. proc sum {arg1 arg2} { set x [expr $arg1+$arg2]; return $x } puts " The sum of 2 + 3 is: [sum 2 3]\n\n" //[语法] :proc procName { var1 var2 ... } {body}说明:1. proc 命令有三个参数:procName 是定义的过程名字:{var1 var2 ...}是输入.输出参数列表:body 是

Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数

if语法 : if [ expression ]    then   commandselif [ expression2 ]   then   commandselse   commandsfi case 语法: case string1 in   str1)    commands;;   str2)    commands;;   *)    commans;;esac 循环语句 for 语法:    for  var in list do commands done     在此形式时,