library("ggplot2") library("signal") # Frequency response of gauss filter source("defines.R") source("frequency_response_functions.R") source("gaussfilt.R") sigma <- 0.05 x <- seq(-1,1,by=0.01) b <- gausskernel(x, sigma) # gauss weights/coefficients == impulse response b <- b/sum(b) # normalize ws <- seq(-length(x)/2, length(x)/2-1)*(2*pi)/(length(x)-1) # normalized frequencies H <- waved::fftshift(fft(b)) # FFT: shift DC component (X[0]) to center HCS <- frequencyResponseCosSin(b,ws) # sin-cos-formula H1 <- cosInOut(b, ws = ws) # |Amp(cosfiltered)|/|Amp(cos)| know from Lab Sheet 3 ggplot() + geom_line(aes(x=ws, y=abs(H), color="FFT"), size = 2) + # plot results geom_line(aes(x=ws, y=H1, color="Cos-In-Out"), size = 2, linetype="dashed")+ geom_line(aes(x=ws, y=HCS, color="cos-sin-formula"), size = 1, linetype="dotted") + plot_style + labs(title = "Gauss Filter Frequency Response", x = "Frequency (rad/s)", y = "Amplitude") + scale_colour_manual(name = "Algorithms", values = c("Cos-In-Out"="red", "FFT"="black", "cos-sin-formula"="yellow")) + scale_x_continuous(breaks = seq(-pi, pi, by = pi/2), labels = c(expression(-pi), expression(frac(pi,2)), "0", expression(frac(pi,2)), expression(pi)))