What is a terminal emulator? Is it just a terminal just like power shell? But why is it an emulator?

Power Shell is not a terminal, it is a shell (hence the name). Yes, you are using Power Shell in a terminal window, but that is a different program. And it is called a terminal emulator because what we now call a terminal or terminal window is in fact a software emulation of a hardware terminal: https://en.m.wikipedia.org/wiki/Computer_terminal

Edit: To make it a bit clearer: You can access your shell of choice (Bash, Fish, Power Shell, Cmd, ...) in different terminal emulators (Windows Console, GNOME Terminal, Visual Studio Code, Kitty, Forceterm, ...). The drawing of the characters to the screen, scrolling, menus and other UI parts are handeled by the terminal, but the actual logic (processing the commands you type) is done by the shell. The shell decides WHAT to display and the terminal emulator decides HOW it is displayed.

I think I need to know what a shell is before I can understand a terminal. To me shell is just a layer exposed by the OS which allows programs to access OS functions.

And terminal is an interactive UI to interact with the OS and its programs. Emulator is synonymous with something here?