用matlab求高通滤波器的自相关函数
时间: 2023-06-11 13:07:26 浏览: 46
高通滤波器的自相关函数可以通过其频率响应来计算。假设高通滤波器的频率响应为 $H(f)$,则其自相关函数为:
$$
R_{hh}(\tau) = \frac{1}{2\pi}\int_{-\infty}^{\infty}H(f)H^*(f)e^{j2\pi f\tau}df
$$
其中 $H^*(f)$ 表示 $H(f)$ 的复共轭。根据滤波器的定义,高通滤波器的频率响应可以表示为:
$$
H(f) = \begin{cases}
1, & |f| > f_c \\
0, & |f| \leq f_c
\end{cases}
$$
其中 $f_c$ 是高通滤波器的截止频率。带入上式得:
$$
\begin{aligned}
R_{hh}(\tau) &= \frac{1}{2\pi}\int_{-\infty}^{\infty}H(f)H^*(f)e^{j2\pi f\tau}df \\
&= \frac{1}{2\pi}\int_{-\infty}^{-f_c}0\cdot 0^*e^{j2\pi f\tau}df + \frac{1}{2\pi}\int_{f_c}^{\infty}1\cdot 1^*e^{j2\pi f\tau}df \\
&= \frac{1}{2\pi}\int_{f_c}^{\infty}e^{j2\pi f\tau}df + \frac{1}{2\pi}\int_{-\infty}^{-f_c}e^{j2\pi f\tau}df \\
&= \frac{1}{2\pi j2\pi\tau}\left[e^{j2\pi f\tau}\right]_{f_c}^{\infty} + \frac{1}{2\pi j2\pi\tau}\left[e^{j2\pi f\tau}\right]_{-\infty}^{-f_c} \\
&= \frac{1}{-j2\tau}\left[e^{j2\pi f_c\tau}\right]_{f_c}^{\infty} + \frac{1}{j2\tau}\left[e^{-j2\pi f_c\tau}\right]_{-\infty}^{-f_c} \\
&= \frac{1}{j2\tau}\left[\frac{1}{1-e^{-j2\pi f_c\tau}} - \frac{1}{1-e^{j2\pi f_c\tau}}\right] \\
&= \frac{\sin(2\pi f_c\tau)}{\pi\tau}
\end{aligned}
$$
因此,高通滤波器的自相关函数为 $R_{hh}(\tau) = \frac{\sin(2\pi f_c\tau)}{\pi\tau}$。在 MATLAB 中,可以使用 `sin` 和 `pi` 函数来计算。例如,如果截止频率为 $f_c = 1000$ Hz,采样率为 $f_s = 8000$ Hz,时间延迟为 $\tau = 0.1$ 秒,可以使用以下代码计算自相关函数:
```matlab
fc = 1000; % 截止频率
fs = 8000; % 采样率
tau = 0.1; % 时间延迟
t = -0.5:1/fs:0.5; % 时间向量
h = zeros(size(t)); % 高通滤波器的单位脉冲响应
h(t==0) = 1; % 高通滤波器的单位脉冲响应
rhh = sin(2*pi*fc*tau)./(pi*tau); % 自相关函数
```
其中,高通滤波器的单位脉冲响应可以通过将 $H(f)$ 取反变换得到。在本例中,高通滤波器的单位脉冲响应为一个理想的矩形波形。