您的位置:

Matlab中的Logspace函数

一、Logspace函数介绍

在Matlab中,Logspace(a,b,n)是一个非常常用的函数。 它定义了一个等比数列,其中第一个数为10 ^ a,最后一个数为10 ^ b,n表示数列中的元素数量。Logspace可用于对信号的频率进行均匀地取样,并输出已知数列区间中的“n”个等间隔点。Logspace函数的一般形式为:


y = logspace(a,b);
y = logspace(a,b,n); 

其中a和b是必选,表示数列的一个起点和一个终点,大小与实数变量有关。变量n是可选的,它与a和b一起定义了数列的长度和间隔。

二、生成等比例数列

Logspace函数主要用于创建等比例信号,下面是一个简单的例子,展示如何使用Logspace函数创建等比例数列。


x = logspace(-1,1,20);   % 创建大小为1x10(即1行,20列)的等比例数列, 范围在10^(-1)和10^(1)之间
plot(x)

代码解析:

  • 使用logspace(-1,1,20)创建一个大小为1x20的等比例数组。
  • 使用plot命令显示结果数组。

三、用logspace生成频率

在创建数字滤波器时,为了避免产生混淆和误解,我们很难直接使用频率值来设置其参数。因此,需要将此任务委托给函数,其中一个常用的函数是logspace。

假设我们有一个数字滤波器,并且需要设置其抽样频率。在这种情况下,您可以使用logspace来生成一系列值,并将其传递给filter函数来设置抽样频率:


   f = logspace(-2,4,200);             % create a vector of frequencies
   nf = length(f);
   randn('state',0);
   x = randn(nf,1); y=fir1(24,0.5/kaiser(25));
   z = filter(y,1,x); P1 = fft(z); P1(1) = [];
   semilogx(f(2:end),20*log10(abs(P1)/nf)); grid on

代码解析:

  • 使用logspace创建一个频率范围为0.01 Hz~10000 Hz的等比例模拟信号。
  • 计算信号的频谱,并使用plot函数绘制。

四、生成dB值范围内的等比数列

有时候,我们需要在dB值范围内创建数字信号。这时候,可以使用logspace协助实现:


      f = logspace(2,6,5000);           % generate frequency range
      H = 100./(1 + (f/300).^2);        % transfer function
      H_dB = -20*log10(abs(H));         % convert to dB
      semilogx(f,H_dB);

代码解析:

  • 使用logspace创建一个频率范围为10^2 Hz~10^6 Hz的等比例数字信号。
  • 通过上一步生成的数字信号,生成分贝(dB)范围内的数字信号。
  • 使用plot函数并使用对数坐标轴显示结果。

五、总结

本文介绍了Matlab中logspace函数的应用。该函数可用于创建等比偏移数字信号,生成分贝(dB)范围内的数字信号,以及生成频率。在Matlab编程中,熟练运用logspace函数将会提高编程效率,加速数字信号处理的速度。